【问题标题】:how to edit file at remote server?如何在远程服务器上编辑文件?
【发布时间】:2014-04-05 18:06:27
【问题描述】:

我想使用 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' ;

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

【问题讨论】:

  • 您正在更改标准输出,而不是文件本身。要替换到位,您需要执行 sed -i 's/55555/00000/g' file
  • 谢谢你的重播,,,,,,,我尝试但它以“sed:非法选项--i”响应
  • 好的,那么这意味着-i 是不可能的。然后,您可以将输出存储在临时文件中,然后移至原始文件:sed 's/55555/00000/g' file > temp_file && mv temp_file file
  • 我试试看^_^谢谢
  • @fedorqui : 效果很好 ^_^ 谢谢

标签: unix sed solaris


【解决方案1】:

您的尝试有两点错误:

  1. 您将cated 输出通过管道传输到sed,因此您只需更改stdout

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

你可能想要的是

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

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

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

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

【讨论】:

  • 非常感谢 ,,,,, ^_^ 我是 unix 新手,所以我还是犯了很多错误,我会试着告诉你发生了什么
猜你喜欢
  • 1970-01-01
  • 2021-09-07
  • 2012-09-10
  • 1970-01-01
  • 2011-07-17
  • 2013-08-12
  • 2018-03-15
  • 2014-11-29
  • 2017-11-20
相关资源
最近更新 更多