Linux 练习 - 文本处理三剑客之SED

1、删除 centos7 系统 /etc/grub2.cfg 文件中所有以空白开头的行行首的空白字符;
[root@centos7 ~]# sed -ri 's/^[ ]+(.*)$/\1/' /etc/grub2.cfg[root@centos7 ~]# sed -ri.bak 's/^[ ]+(.*)$/\1/' /etc/grub2.cfg
2、删除 /etc/fstab 文件中所有以#开头,后面至少跟一个空白字符的行的行首的 # 和空白字符;
[root@localhost ~]# sed -ri 's/^#[ ]+(.*)$/\1/' /etc/fstab
3、在 centos6 系统 /root/install.log 每一行行首增加 # 号;
[root@localhost ~]# sed -ri 's/(.*)/#\1/' /root/install.log
4、在 /etc/fstab 文件中不以 # 开头的行的行首增加 # 号;
[root@localhost ~]# sed -ri 's/^[^#](.*)/#\1/' /etc/fstab
5、处理 /etc/fstab 路径,使用 sed 命令取出其目录名和基名;
[root@localhost ~]# echo /etc/fstab | sed -nr 's/^(.*\/).*/\1/p'
/etc/

[root@localhost ~]# echo /etc/fstab | sed -nr 's/^.*\/(.*)/\1/p'
fstab
6、利用 sed 取出 ifconfig 命令中本机的 IPv4 地址;
[root@localhost ~]# ifconfig | sed -nr 's/.*addr:([0-9.]{7,15}) .*/\1/p'
10.10.10.66
127.0.0.1
7、统计 centos 安装光盘中 Package 目录下的所有rpm文件的以 . 分隔倒数第二个字段的重复次数;
[root@centos7 ~]# mount /dev/sr0 /mnt
[root@centos7 ~]# ls /mnt/Packages | sed -nr 's/^.*[.](.*).rpm/\1/p' | sort | uniq -c
   1404 noarch
   2663 x86_64
8、统计 /etc/init.d/functions 文件中每个单词的出现次数,并排序(用 grep 和 sed 两种方法分别实现);
[root@centos7 ~]# grep -o '[[:alpha:]]\+' /etc/init.d/functions | sort | uniq -c | sort -nr
[root@centos7 ~]# sed -r 's/[^[:alpha:]]/\n/g' /etc/init.d/functions | sed '/^$/d' | sort | uniq -c | sort -nr
9、将文本文件的 n 和 n+1 行合并为一行,n 为奇数行。
[root@centos7 ~]# seq 1 10 | sed -n 'N;s/\n//p'

你可能感兴趣的:(Linux,练习)