sed 's/$/<br>/' mytext.txt
可以工作,但可以在命令行上輸出。我希望它只是在指定的文件本身進行替換。我應該使用其他工具嗎?用於在線替換文件中所有換行符的unix命令行使用<br> n
sed 's/$/<br>/' mytext.txt
可以工作,但可以在命令行上輸出。我希望它只是在指定的文件本身進行替換。我應該使用其他工具嗎?用於在線替換文件中所有換行符的unix命令行使用<br> n
如果你已經GNU sed中,你可以使用-i
選項,它會做更換到位。
sed -i 's/$/<br>/' mytext.txt
否則,您將不得不重定向到另一個文件並將其重命名爲舊的。
sed 's/$/<br>/' mytext.txt > mytext.txt.new && mv mytext.txt.new mytext.txt
使用重定向符號即
sed 's/$/<br>/' mytext.txt > mytext2.txt && mv mytext2.txt mytext.txt
如果你有一個上最新sed
,只需用sed -i
或sed --in-place
,這將修改實際的文件本身。
如果你想備份,你需要爲它提供一個後綴。因此sed -i.bak
或sed --in-place=.bak
將創建一個.bak
後綴的備份文件。
使用此!認真!由於錯誤地輸入sed
命令或錯誤地假設文件中的數據,您在第一次損壞文件時會非常感激。
這實際上是一個新的啓示。我根本沒有意識到這一點。感謝您的洞察力paxdiablo! – DrMHC 2010-08-17 04:45:08
只是爲了完整。在Mac OS X(使用FreeBSD的SED),你必須使用一個額外的空串「」就地文件編輯,而不備份:
sed -i "" 's/$/<br>/' mytext.txt
作爲替代使用的sed就地無備份文件編輯,你可以使用ed(1),然而,在操作它之前,它將整個文件讀入內存。
printf '%s\n' H 'g/$/s//<br>/g' ',p' | ed -s test.file # print to stdout
printf '%s\n' H 'g/$/s//<br>/g' wq | ed -s test.file # in-place file edit
欲瞭解更多有關ED(1)看:
「編輯文件與腳本編輯的文本編輯器」,
哎呦 - 當然!感謝您的快速回復! – DrMHC 2010-08-17 02:20:12