隨手筆記NO.6
阿新 • • 發佈:2018-02-23
簡單 編輯 修改 com sta love 基本用法 輸出 文件內容 sed命令(流編輯器)
他是一個行編輯器,它將內容的每一行逐行讀取到內存中,在內存中完成編輯,然後將結果輸出到屏幕上
sed 的基本用法
sed [options] ‘AddressCommand‘ file ... options -n: 靜默模式,不再默認顯示模式空間中的內容 -i: 直接修改原文件 -e SCRIPT -e SCRIPT:可以同時執行多個腳本 -f /PATH/TO/SED_SCRIPT sed -f /path/to/scripts file -r: 表示使用擴展正則表達式 Address: 1、StartLine,EndLine 比如1,100 $:最後一行 2、/RegExp/ #使用正則表達式,來指定模式 /^root/ 3、/pattern1/,/pattern2/ 第一次被pattern1匹配到的行開始,至第一次被pattern2匹配到的行結束,這中間的所有行 4、LineNumber 指定的行 5、StartLine, +N 從startLine開始,向後的N行; Command: d: 刪除符合條件的行; p: 顯示符合條件的行; a \string: 在指定的行後面追加新行,內容為string \n:可以用於換行 [loveyu@feitian ~]$ sed ‘/^\//a \# hello world‘ /etc/fstab 以/開頭的行,在後面添加新行。 i \string: 在指定的行前面添加新行,內容為string r FILE: 將指定的文件的內容添加至符合條件的行處 [loveyu@feitian ~]$ sed ‘2r /etc/issue‘ /etc/fstab 在/etc/fstab文件的第二行後面加上/etc/issue的整個文件內容 w FILE: 將地址指定的範圍內的行另存至指定的文件中; [root@feitian script]# sed ‘/oot/w /tmp/oot.txt‘ /etc/fstab 將/etc/fstab中包含oot的行另存為/tmp/oot.txt中 s/pattern/string/修飾符: 查找並替換,默認只替換每行中第一次被模式匹配到的字符串 加修飾符 g: 全局替換 i: 忽略字符大小寫 s///: s###, s@@@ \(\), \1, \2 &: 引用模式匹配整個串
下面兩個簡單的例子
- 將以l開頭以e結尾的字符串後面加上r
[root@feitian mnt]# sed ‘s#(l..e)#&r#g‘ hehe.txt
[root@feitian mnt]# sed ‘s#(l..e)#\1r#g‘ hehe.txt
l..e: like-->liker
love-->lover - 就匹配到的字符串的l替換成L
[root@feitian mnt]# sed ‘s#l(..e)#L\1r#g‘ hehe.txt #註意這個時候不能使用&好,只能使用後向引用
like-->Like
love-->Love
隨手筆記NO.6