9. 第五章 文本处理三剑客之SED
Posted neteagles
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9. 第五章 文本处理三剑客之SED相关的知识,希望对你有一定的参考价值。
第五部分 sed
1、删除centos 7系统/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符
[root@centos8 ~]# sed -r ‘s@^[[:space:]]+(.*)@1@‘
2、删除/etc/fstab文件中所有以#开头,后边至少跟一个空白字符的行的行首的#和空白字符
[root@centos8 ~]# sed -n ‘/^[^#]/p‘ /etc/fstab
UUID=baa17659-25ca-488b-9b1e-cd5717e003c4 / xfs defaults 0 0
UUID=83e73d60-7f9a-4c0e-8ebf-4b832f2a0e27 /boot ext4 defaults 1 2
UUID=687f9d7a-f30f-4e94-a05e-28505e320c16 /data xfs defaults 0 0
3、在centos 6系统/root/install.log每一行行首增加#号
[root@centos6 ~]# sed -n ‘s/^/#/p‘ install.log
[root@centos6 ~]# sed -rn ‘s/(^.*)/#1/p‘ install.log
4、在/etc/fstab文件中不以#开头的行的行首增加#号
[root@centos8 ~]# sed -rn ‘s/(^[^#].*)/#1/p‘ /etc/fstab
#UUID=baa17659-25ca-488b-9b1e-cd5717e003c4 / xfs defaults 0 0
#UUID=83e73d60-7f9a-4c0e-8ebf-4b832f2a0e27 /boot ext4 defaults 1 2
#UUID=687f9d7a-f30f-4e94-a05e-28505e320c16 /data xfs defaults 0 0
#UUID=bc3b015a-95a4-478a-a865-edca3f3950f4 swap swap defaults 0 0
5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
[root@centos8 ~]# echo ‘/etc/fstab‘ | sed -r ‘s@(^/.*./)(.*)@1@‘
/etc/
[root@centos8 ~]# echo ‘/etc/fstab‘ | sed -r ‘s@(^/.*./)(.*)@2@‘
fstab
6、利用sed取出ifconfig命令中本机的IPv4地址
[root@centos8 ~]# ifconfig eth0 |sed -rn ‘2s@([^0-9]+)([0-9.]+).*@2@p‘
10.0.0.8
7、统计centos安装光盘中Package目录下的所有rpm文件的以.分割倒数第二个字段的重复次数
[root@centos8 ~]# mount /dev/sr0 /mnt
[root@centos8 ~]# ls /mnt/AppStream/Packages/
[root@centos8 ~]# ls /mnt/AppStream/Packages/ |sed -rn ‘s/.*.(.*).rpm$/1/p‘ |sort| uniq -c
895 i686
1953 noarch
2478 x86_64
8、统计/etc/inin.d/functions文
件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)
[root@centos8 ~]# cat /etc/init.d/functions |sed -r ‘s@[^[:alpha:]]+@
@g‘|sort |uniq -c|sort -nr |tail -n+2|sort -n
[root@centos8 ~]# grep -Eo "[[:alpha:]]+" /etc/init.d/functions|sort|uniq -c |sort -n
9、将文本文件的n和n+1行合并为一行,n为奇数行
[root@centos8 ~]# seq 10 |sed ‘N;s/
/ /‘
1 2
3 4
5 6
7 8
9 10
以上是关于9. 第五章 文本处理三剑客之SED的主要内容,如果未能解决你的问题,请参考以下文章