天天看點

Linux練習題-文本處理工具sed

1、删除centos7系統/etc/grub2.cfg檔案中所有以空白開頭的行行首的空白字元

sed s#[[:space:]]*## /etc/grub2.cfg

Linux練習題-文本處理工具sed

2、删除/etc/fstab檔案中所有以#開頭,并且後面至少跟一個空白字元的行首

sed -r s/^#[[:space:]*// /etc/fstab

Linux練習題-文本處理工具sed

3、在centos6系統/root/install.log每一行行首增加#号

sed s/^Installing/#Installing/ /root/install.log

Linux練習題-文本處理工具sed
Linux練習題-文本處理工具sed

4、在/etc/fstab檔案中不以#開頭的行的行首增加#号

sed -r "s/(^[^#])*/#\1/" /etc/fstab ,有正規表達式注意加雙引号

Linux練習題-文本處理工具sed

5、處理/etc/fstab路徑,使用sed指令取出其目錄名和基名

基名:echo /etc/fstab | sed -r "s#^(/.*/)([^/]+/?)#\2#"

目錄名:echo /etc/fstab | sed -r "s#^(/.*/)([^/]+/?)#\1#"

Linux練習題-文本處理工具sed

6、利用sed 取出ifconfig指令中本機的IPv4位址

ifconfig ens33 |sed -n '2p' | sed -r "s/.*inet[[:space:]]*//" | sed -r "s/[[:space:]]*netmask.*//"

Linux練習題-文本處理工具sed

7、統計centos安裝CD光牒中Package目錄下的所有rpm檔案的以.分隔倒數第二個字段的重複次數

ls /run/media/root/CentOS\ 7\ x86_64/Packages/ | grep -v "TBL" |sed -r "s#(.*\.([^.]+).rpm$)#\2#"

Linux練習題-文本處理工具sed

8、統計/etc/init.d/functions檔案中每個單詞的出現次數,并排序(用grep和sed兩種方法分别實作)

grep方法:cat /etc/init.d/functions |grep -io "\<[[:alpha:]]*\>" |sort -rn |uniq -c |sort -n

sed方法:sed "s/[^[:alpha:]]/\n/g" /etc/init.d/functions" | sort -rn | uniq -c |sort -n

Linux練習題-文本處理工具sed
Linux練習題-文本處理工具sed
Linux練習題-文本處理工具sed
Linux練習題-文本處理工具sed

9、将文本檔案的n和n+1行合并為一行,n為奇數行

sed 'N;s/\n//'

Linux練習題-文本處理工具sed

繼續閱讀