2013-01-16 163 views
0

我想使用以下命令使用linux sed替換文件的第二行。無法使用linux sed在文件的特定行插入文本

sed -i"" '2d' /usr/local/services/status.sh 
sed -i '2i\testing' /usr/local/services/status.sh 

在我的命令中是否有錯誤?我找不到。 有沒有其他方法可以做到這一點?

任何形式的幫助表示讚賞。

回答

0

要更換2號線:

$ cat file 
AIX 
Unix 
Linux 
$ sed -i '2s/.*/testing/' file 
$ cat file 
AIX 
testing 
Linux 

到第2行前插入:

$ sed -i '2i testing' file 

要使用一個變量作爲託換的一部分:

$ PID=2456 
$ sed -i "2s/.*/testing $PID/" file 
+0

感謝一噸。 你能告訴我如何連接兩個字符串在/.*/____/之間嗎? 例如:我需要保存PID和文本。 –

+0

例如:我需要保存PID和文本一樣。像這樣的東西 - sed -i'2s /.*/ ps -p $! >/dev/null 2>&1 && echo 1 running ||回聲1沒有運行' 請糾正我。 –

+1

請參閱更新..首先將PID存儲在單獨的變量中,然後在sed命令中使用該變量。 – Guru

1

這可能會爲工作你:

sed -i '2c\testing' file 
+0

這很容易。謝謝 :) –

相關問題