sed :stream editor for filtering and transforming text 流編輯器文本轉換工具
sed不適用-i的情況下,不對源文件做修改,只將處理結果打印至屏幕,使用-i時將直接修改源文件,屬於危險做法,用於腳本中修改配置文件,初學者不建議。
sed使用方法:
sed範圍修改打印:
直接打印文件第四行:sed -n‘4p’path_to_file
只刪除第四行至下一行的數據(包括下一個空行),打印其他數據 :sed ‘4,/^$/d’ /path_to_file
不打印第四行至下一行的數據(包括下一個空行) :sed -n ‘4,/^$/!p' /path_to_file
只顯示第四行到下一個空行的數據(包括下一個空行)不刪除只打印這些 :sed ‘4,/^$/!d' /path_to_file
第一次被pattern匹配到的行開始,到第二次被pattern匹配到的行結束,中間的所有行 :/Pattern1/,/Pattern2/
sed參數:
-n :--quiet, --silent :靜默模式 不再默認顯示模式中的內容
-r :use extended regular expressions in the script.使用擴展正則表達式
sed替換:
sed -r 's/regexp/replacement/g' /path_to_file :sed -r 's/[[:space:]]+//g' file 去掉行首的空白字符
sed檢索合並實例:cat /etc/inittab |sed -r 's/^#//g;s/^[[:space:]]+//g;/^$/d' :去掉文件inittab文件中的開頭的#號,開頭的空白字符以及空行
sed將範圍內某個單詞修改或去掉 :sed -i '2,3s/\<nameserver\> //g' /etc/resolv.conf :
將2至3行的nameserver去掉
sed加修飾符:g:全局替換
i:忽略字符大小寫
sed後向應用:
sed ‘s#\(pattern\)#\1XX#g’ file
sed其他:a \string:在指定的行後面追加新行,內容爲“string”
i \string :在指定的行前面添加新行,內容爲“srting”