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的主要内容,如果未能解决你的问题,请参考以下文章

文本处理三剑客之SED

文本处理三剑客之sed的使用

linux文本三剑客之sed命令详解

Linux文本处理三剑客之sed

Linux文本处理三剑客之---sed

文本处理三剑客之sed