編程能力:
正則表達式
腳本編程編程
grep,sed(流編程器),awk編輯器
sed 基本用法:ide
sed:Stream EDitorspa
行編輯器(全屏編輯器:vi)orm
sed:模式空間ip
默認不編輯原文件,僅對模式空間中的數據作處理;然後,將處理結束後的空間打印到屏幕上ci
用法:字符串
sed [OPTION]... {script-only-if-no-other-script} [input-file]...input
sed +選項+{sed 腳本}
sed [選項] 'AddressCommand' file... \對這個(這些)文件符合這個指定範圍的行實現指定命令。
-n:靜默模式 (不顯示模式空間的內容)
-i:直接修改原文件
-e SCRIPT -e SCRIPT:能夠同時執行多個腳本
-f /PATH/TO/SED_SCRIPT
sed -f /path/to/scripts file
-r:表示使用擴展正則表達式
Address:
StartLine,EndLine
好比1,100
/RegExp/ \正則表達式來指定的模式
好比/^root/ \已root開始的行
/pattern1/,/pattern2/ \模式1,模式2
第一次被pattern1匹配到的行開始,至第一次被pattern2匹配到的行結束,中間的全部行。
LineNumber \行號
$ :最後一行
StartLine ,+N \從指定的行開始,向後的N行。
Command:
d:刪除符合條件的行;
例:
#sed '1,2d' /etc/fstab \刪除/etc/fstab 中的1,2行
#sed '/s/d' /etc/fstab \刪除/etc/fstab 中帶有's'的行
#sed '/^/\/d' /etc/fstab \刪除已斜線開頭的行(\是特殊字符要用/轉義)
p:顯示符合條件的行
例:
#sed '/^/\/d' /etc/fstab \刪除已斜線開頭的行(\是特殊字符要用/轉義)
#sed -n'/^/\/p' /etc/fstab \只顯示已斜線開頭的行
# sed -n '/^#/p' /etc/fstab \打印已#開頭的行
a \string:在指定的行後面追加新行,內容爲string
例:# sed '/s/ a \hi' /etc/fstab \在全部帶s的行後面追加一行 hi。
#sed '/s/a \hi. \nhello.' /etc/fstab \在全部帶s的行後邊追加一行hi,一行hello.
i \string:在指定的行前面添加新行,內容爲string
r File:將指定的文件的內容添加到指定行處。
例:
# sed '1r /etc/passwd' /etc/fstab \在文件fstab第一行後邊添加文件passwd的內容。
w File: 將地址指定的範圍內的行另存至指定的文件中
例:
#sed '/s/w /tmp/s.txt' /etc/fstab \將fstab文件中帶有s的行保存到tmp下的s.txt文件中
s/pattern/string/修飾符: \將文件中查找到的pattern替換成string(默認是隻替換每行中第一次匹配到的字符串) 修飾符 g:全局替換 i:忽略字符大小寫
附加:s/// 能夠寫成s### 、s$$$ \分隔符能夠用特殊字符來替換
&:引用模式匹配的整個串
例:
#sed 's/s/S/' /tmp/s.txt \將文件s.txt中的全部s替換成S
#sed 's/l..e/&r/' 引用.sh \將文件引用.sh中已l開始e結尾的字符後邊加上r
#sed 's#l\(..e\)#L\1#g' 引用.sh \改變引用字符一部分用後向引用