
我知道這個問題之前可能已經被回答過。我在不同的地方看到很多關於這個問題的帖子,但我通常很難找到答案。我正在尋求有關“sed”命令範例用法的幫助。
假設我想對檔案“hello.txt”進行操作(與提示位於同一目錄中)。任何包含短語“few”的地方都應更改為“asd”。該命令會是什麼樣子?
答案1
sed
是個s崔姆編輯伊托爾,因為您可以使用|
(pipe) 發送標準流(特別是 STDIN 和 STDOUT)透過sed
程式設計即時更改它們,使其成為 Unix 哲學傳統中的方便工具;但也可以使用-i
下面提到的參數直接編輯文件。
考慮以下:
sed -i -e 's/few/asd/g' hello.txt
s/
習慣s將找到的表達式替換few
為asd
:
少數,勇敢。
asd,勇敢的人。
/g
代表“global”,意思是對整個生產線都這樣做。如果您省略/g
(使用s/few/asd/
,無論如何總是需要三個斜線)並few
在同一行上出現兩次,則只有第一個few
更改為asd
:
少數男人,少數女人,勇敢的人。
孤獨的男人,少數的女人,勇敢的人。
這在某些情況下很有用,例如更改行開頭的特殊字元(例如,用水平製表符替換一些人用來引用電子郵件線程中先前材料的大於符號,同時在行後面留下引用的代數不等式未受影響),但在您指定的範例中任何地方 few
發生時應更換,確保您有/g
。
以下兩個選項(標誌)合併為一個-ie
:
-i
選項用於編輯我n 放在文件上hello.txt
。
-e
選項表示e要運行的表達式/命令,在本例中為s/
.
注意:使用-i -e
搜尋/替換很重要。如果這樣做-ie
,您將建立每個檔案的備份,並附加字母「e」。
答案2
sed -i 's/fea/asd/g' hello.txt
G:全球的
s:代替
-我:即時處理文件到位