2014-03-04 108 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

相關問題