除了sed
以外,還有其他的選擇嗎? 我的意思是,這是否在shell腳本如何在shell腳本中編輯文件的內容?
cat file1
命令,它包含以下內容:
How
are
you
但是假設我要改變這個詞「如何」變成「誰」?
除了sed
以外,還有其他的選擇嗎? 我的意思是,這是否在shell腳本如何在shell腳本中編輯文件的內容?
cat file1
命令,它包含以下內容:
How
are
you
但是假設我要改變這個詞「如何」變成「誰」?
有多種替代sed
,但sed
可能是首選這個特定的操作工具。該方案包括:
ed
ex
awk
的ed
和ex
命令是SIM卡ILAR:
ed ff <<!
g/How/s//Who/g
w
q
!
你可以寫ex
而不是ed
。
perl -i.bak -p -e 's/\bHow\b/Who/g' ff
awk '{ gsub(/How/, "Who"); print }' ff
我不流利足夠Python或Ruby給慣用的解決方案。
但sed
,尤其是GNU sed
與-i
選項,很方便也:
sed -i 's/How/Who/g' ff
沒有-i
選項(和-i
選項不完全傻瓜型,如果你有一個白癡像我這樣用符號鏈接或多個鏈接到比賽中的一個單一的文件),你可以使用:
sed 's/How/Who/g' ff > ff.$$
cp ff.$$ ff
rm -f ff.$$
或者,用陷阱,以確保無殘留的臨時文件:
tmp=ff.$$
trap "rm -f $tmp; exit 1" 0 1 2 3 13 15
sed 's/How/Who/g' ff > ff.$$
cp ff.$$ ff
rm -f ff.$$
trap 0
我試過sed,但由於某種原因,它代替了空白行而不是文件中的新單詞 –
'ed'示例中的'q'命令是不必要的。 –
是的,它被稱爲'vim' ... – 2012-10-07 05:45:58
'shell腳本中的'vim'不是明顯的選擇,我們可以說。 –