Using SED in a ssh command on a remote node

10,276

I suggest to replace

ssh $i 'sed -i \'s/172.16.48.70/172.20.54.10/g\' /etc/hosts;'

by

ssh "$i" 'sed -i "s/172.16.48.70/172.20.54.10/g" /etc/hosts'

If you absolutely want to use single quotes:

ssh "$i" 'sed -i '"'"'s/172.16.48.70/172.20.54.10/g'"'"' /etc/hosts'
Share:
10,276
mahmood
Author by

mahmood

Updated on June 14, 2022

Comments

  • mahmood
    mahmood almost 2 years

    I wrote a script to ssh to some nodes and run a sed command inside the node. The script looks like

    NODES="compute-0-3"
    for i in $NODES 
    do
      echo $i
      ssh $i 'sed -i \'s/172.16.48.70/172.20.54.10/g\' /etc/hosts;'
    done
    

    However, the error is

    unexpected EOF while looking for matching `''
    syntax error: unexpected end of file
    

    It seems that the character ' is not treated as the begining of a sed command.

  • Cyrus
    Cyrus over 7 years