b、命令(編輯命令)
d:刪除模式空間匹配的行,立即啟用下一輪迴圈
p:列印當前模式空間中內容,追加至預設輸出之後
a [\]text在指定行後面追加文字,追加多行使用『 \n 』 ;[\]表示其後內容均為新增內容
i [\]text 在指定行前面新增文字
c [\]text 替換指定行文字
w /path/file:儲存模式匹配的行至指定文字
r /path/file:讀取指定的文字至模式空間匹配的行行後
=:為模式空間中的行列印行號
!:模式空間中匹配行取反處理
★★★★★ sed經常使用的查詢替換(★ 代表現階段我需要掌握係數)
①s///:查詢替換,支援使用其他分割符,s@@@,s###
②替換標記:
g:全域性替換
p:顯示替換成功的行
w /path/file:將替換成功的行儲存至指定檔案中
c、高階編輯命令(編輯命令) 涉及儲存空間 ★
p: 列印模式空間開端至\n內容,並追加到預設輸出之前
h:把模式空間中的內容覆蓋至儲存空間
h:把模式空間中的內容追加至保持空間
g: 從保持空間取出資料覆蓋至模式空間
g:從保持空間取出內容追加至模式空間
x: 把模式空間中的內容與保持空間中的內容進行互換
n: 讀取匹配到的行的下一行覆蓋至模式空間
n:讀取匹配到的行的下一行追加至模式空間
d: 刪除模式空間中的行
d:如果模式空間包含換行符,則刪除直到第乙個換行符的模式空間中的文字, 並不會讀取新的輸入行,而使用合成的模式空間重新啟動迴圈。如果模式空間不包含換行符,則會像發出d命令那樣啟動正常的新迴圈
★★★★★sed可以將一行文字隨意切割為多份,可對每乙份實現修改
sed練習題1:
1、刪除/etc/grub2.cfg中所有以空白開頭的行行首的空白字元
sed -nr 's/^[[:space:]]+([^[:space:]].*)/\1/p' /etc/grub2.cfg
2、刪除/etc/fstab中所有以#開頭,後面至少跟乙個空白字元的的行的行首的#和空白字元
sed -nr 's/^#[[:space:]]+//p' /etc/fstab
3、在centos6中/root/install.log每行行首加#號
sed -nr 's/(.*)/#\1/p' /root/install.log
4、在/etc/fstab中不以#開頭的行的行首新增#號
sed -nr 's/^[^#](.*)/#\1/p' /etc/fstab
5、將文字的n和n+1行合併為一行,n為奇數行
seq 10| sed -n '1~2p' |xargs -n2
6、利用sed取出ifconfig命令中的ipv4位址
ifconfig |sed -n '2p'|sed -nr 's/[^0-9]+([0-9.]+).*/\1/p'
7、統計centos安裝光碟目錄下所有rpm檔案以.分割的倒數第二個欄位的重複次數
[root@centos7 test]# ls /misc/cd/packages/*.rpm | sed -nr 's/.*\.(.*)\.rpm/\1/p' |sort |uniq -c
2258 i686 32位cpu架構(可以在64位作業系統執行的32位程式)
3122 noarch 與cpu架構無關(二進位制程式才與cpu架構相關)
4639 x86_64 64位cpu架構
...
★★★sed在指令碼中使用變數時,其一般』scripts』 可能導致變數失效,此時可以用三個單引號』』'將變數引起來,以識別scripts中的變數
示例:
[root@centos7 test]# name=root;echo $name;sed -n '/$name/p' /etc/passwd
root
此處變數在單引號內,未能識別是變數
[root@centos7 test]# name=root;echo $name;sed -n '/'''$name'''/p' /etc/passwd
root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@centos7 test]#
★sed高階用法
示例:
sed -n 'n;p' file
sed '1!g;h;$!d' file
sed『n;d』file
sed '$!n;$!d' file
sed '$!d' file
sed 『g』 file
sed 『g』 file
sed 『/^$/d;g』 file
sed 'n;d' file
sed -n '1!g;h;$p' file
上述示例分析:只分析乙個(以此類推):
Linux文字處理三劍客
grep 作用 文字搜尋工具,根據使用者指定的 模式對目標檔案逐步進行匹配檢查,列印匹配到的行 grep root etc passwd grep命令選項 grep user etc passwd v 顯示不被pattern 匹配的行 e 僅顯示匹配到的字串 grep user etc passwd...
linux文字處理三劍客
常用引數 v 顯示不能夠被匹配到的行 i 忽略大小寫字元 o 僅顯示匹配到的字串 q 靜默模式,不輸出任何資訊 a 後 行 b 前 行 c 前後各 行 e 使用ere,相當於egrep常用引數 n 只列印模式匹配的行 e 直接在命令列模式上進行sed動作編輯,此為預設選項 f 將sed的動作寫在乙個...
文字處理三劍客
文字處理三劍客 劍客一 grep 作用 行 過濾 用法 grep 正規表示式 檔案 路徑 grep e 擴充套件類正規表示式 檔案 路徑 劍客二 sed 用法 sed 選項 位址定位sed命令 檔案 路徑 sed 選項 正規表示式 sed命令 檔案 路徑 sed 選項 位址定位 正規表示式 sed命...