Linux之小小 sed 大動作

2021-06-05 08:58:07 字數 815 閱讀 8221

同grep一樣,sed命令的功能也非常強大,這裡我僅僅介紹常用的乙個命令:

我們看這樣的乙個文件:在終端輸入:

root@linux-virtualbox:~# cat a.txt 

111333444

333然後:

root@linux-virtualbox:~#sed "s/333/222/g" a.txt 

111222444

222再檢視:root@linux-virtualbox:~# cat a.txt 

111333444

333

居然沒修改;其實sed是非互動式的編輯器。它不會修改檔案,除非使用shell重定向來儲存結果。預設情況下,所有的輸出行都被列印到螢幕上。

想修改原檔案,則需加入 引數 i

如:root@linux-virtualbox:~#

sed -i "s/333/222/g" a.txt 

root@linux-virtualbox:~# 

檢視:root@linux-virtualbox:~#

cat a.txt 

111222444

222修改完成,其實後面也可以使用 萬用字元 * ,以及 -r 引數。 如:

sed -i "s/1111/2222/g" `grep "1111" * -rl`//注意中英文符號

-i 表示 inplace edit,就地修改檔案

-r 表示搜尋子目錄

-l 表示輸出匹配的檔名

這個命令比較危險,注意備份

。修改當前目錄及其子目錄下所有子目錄下所有檔案中的字串「1111」為「2222」。

Linux之Sed命令詳解

3.sed命令 呼叫sed命令有兩種形式 sed options command file s sed options f scriptfile file s a 在當前行後面加入一行文字。b lable 分支到指令碼中帶有標記的地方,如果分支不存在則分支到指令碼的末尾。c 用新的文字改變本行的文字...

linux之sed命令詳解

sed是stream editor的簡稱,也就是流編輯器。它一次處理一行內容,處理時,把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 pattern space 接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,這樣不斷重複,直到檔案末尾。檔案內容並沒有 改變...

linux基礎命令之sed

sed是乙個流編輯器,英文全名為stream editor,流的意思就是能處理檔案或者通過管 道傳輸來的資料。主要針對行,也就是行編輯。預設是不編輯檔案的,處理時,把當前 處理的行儲存在臨時緩衝區中,稱之為模式空間 pattern space 接著用sed命令處理 緩衝區中的內容,處理完成後,預設把...