如何在远程服务器上编辑文件?

时间:2014-03-04 09:36:08

标签: unix sed solaris

我想使用solaris编辑远程服务器上的文件

我要编辑的远程服务器上的原始文件是:

11111
22222
33333
44444
55555
66666
77777

我想删除第5行“55555”并将其替换为“00000”

我试试这个

ssh user@host 'cat ~/path_of_original_file.txt '| sed 's/55555/00000/g' ;

结果显示成功并且行替换为我想要的,但是当我在远程服务器上打开文件时没有任何改变!!!!!

1 个答案:

答案 0 :(得分:1)

您的尝试有两个问题:

  1. 您将cat ed输出标记为sed,因此您只需更改stdout

  2. 管道的右侧在远程服务器上本地而不是运行,因为它在您引用的字符串之外。

  3. 你可能想要的是

    ssh user@host 'sed -i "s/55555/00000/g" ~/path_of_original_file.txt'
    

    其中-i表示就地(请参阅man sed)。

    另请注意,/g会更改55555的所有出现次数,而不仅仅是第5行的第一次出现。

    由于您使用的是Solaris而sed可能没有-i,因此您需要使用临时文件(另请参阅例如here)。