2014-03-04 74 views
1

我想使用Solaris如何在远程服务器上编辑文件?

在远程服务器上的原始文件,我想编辑在远程服务器上编辑文件:

11111 
22222 
33333 
44444 
55555 
66666 
77777 

,我想删除第5行“55555”和替换它通过“00000”

我试试这个

ssh [email protected] 'cat ~/path_of_original_file.txt '| sed 's/55555/00000/g' ; 

结果成功出现,取代行,因为我想要的,但是当我在远程服务器上打开文件没有任何改变!!!!!

+2

您正在更改stdout,而不是文件本身。要替换你需要做'sed -i's/55555/00000/g'文件' – fedorqui

+0

谢谢你的重播,,,,,,,我尝试了但是它回应了“sed:非法选项 - 我” – mondo32

+1

好吧,那就意味着'-i'是不可能的。然后,您可以将输出存储在临时文件中,然后移动到原始文件:'sed's/55555/00000/g'文件> temp_file && mv temp_file文件' – fedorqui

回答

1

有两件事情错了你的尝试:

  1. 你管cat版输出sed,所以你只改变stdout

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

你可能想要的是

ssh [email protected] 'sed -i "s/55555/00000/g" ~/path_of_original_file.txt' 

其中-i意味着就地(见man sed)。

还要注意的是/g将改变55555所有occurrances,不只是第1 /一个第5行

由于您使用的Solaris和你sed可能没有-i你需要使用一个临时的文件(另见例如here)。

+0

非常感谢你,,,,,^_ ^我是unix新手,所以我仍然犯了很多错误,,我会试着告诉你发生了什么 – mondo32

+0

它的工作原理^ ^谢谢 – mondo32

相关问题