LINUX學習—sed命令(LINUX三劍客)
阿新 • • 發佈:2018-11-19
sed
sed基本用法
sed( stream Editor)是一種流編輯器,預設不編輯原檔案,僅對模式空間中的資料做處理,而後,處理結束後,將模式空間列印至螢幕;
sed主要用來自動編輯一個或多個檔案;簡化對檔案的反覆操作;編寫轉換程式等。
行編輯器:逐行處理(全屏編輯器如vi)
語法: sed [option] ‘AddressCommand’ file…
Option: -n:靜默模式 ,不再預設顯示模式空間中的內容,只顯示符合條件的行 -i:直接修改原檔案,慎用 -e SCRIPT -e SCRIPT:可以同時執行多個指令碼; -f /PATH/TO/SED_SCRIPT:指定檔案,也可以執行多個指令碼; sed -f /path/to/scripts file 表示使用擴充套件正則表示式 Address: 1、StartLine, EndLine 如1,100 $:表示最後一行 2、 使用正則表示式來指定模式 /RefExp/ 如:/^root/ 3、 /pattern1/, /pattern2/ 第一次被pattern1匹配到的行開始,至第一次被pattern2匹配到的行結束,這中間的所有行; 4、LineNumber 指定的行 $:表示最後一行 5、StartLine, +N 從StartLine行開始,向後的N行 Command: d:刪除符合條件的行: p:顯示符合條件的行; a \string: 在指定的行後面追加新行,內容為string \n:可以擁有換行 i \string: 在指定的行前面新增新行,內容為string r FILE:將指定檔案內容新增至符合條件的行處 w FILE:將地址指定範圍內的內容另存至指定的檔案中; s/pattern/string/修飾符: pattern中可以用正則表示式,而string不行,查詢並替換,預設只替換每行中第一次匹配到的字串; 加修飾符 g:全域性替換 i:忽略字元大小寫 也可以用其他分隔符代替/,只要保持三個統一就行,如s###,
[email protected]@@ 後項引用仍然適用:\(\), \1,\2 &: 引用模式匹配到的整個串 l...e: like-->liker love-->lover (sed '/l..e/&r/g' file.txt) like-->Like love-->Love (sed '#l/(..e/)#L\1#g' file1) 不能完全匹配字串時不能用&便只能用後項引用。