20160808课堂练习(sed工具)

练习:

1、  删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符

# sed 's@^[[:space:]]\+@@' /etc/grub2.cfg

blob.png

blob.png                  

2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

#sed -n 's@^#[[:space:]]\+@@p' /etc/fstab

blob.png

3、  /root/install.log每一行行首增加#

## sed 's@^@#&@' /root/install.log

blob.png

# sed -n 's@^@#@p' /etc/passwd

blob.png

4、  /etc/fstab文件中不以#开头的行的行首增加#

# sed -r 's@^([^#]|^$)@#@g' /etc/fstab

blob.png

# sed -n 's@^[^#]\+@#&@p' /etc/fstab

blob.png 

5、处理/etc/fstab路径,使用sed命令取出其目录名和基名

目录名:

echo "/etc/fstab" | sed 's@/[^/]\+/\?$@@'

blob.png

# echo "/etc/fstab/" | sed -r 's@[^/]+/?$@@'

blob.png 

# echo "/etc/fstab/" | sed -r 's@(.*/)([^/]+/?)@\1@'

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

blob.png 

基名:

#  echo "/etc/fstab" | sed -r 's@.*\<@@'

blob.png 

6、利用sed 取出ifconfig命令中本机的IPv4地址

# ifconfig | sed -n '2p' | sed -r 's@\<netmask\>.*$@@' | sed 's@[[:lower:]]\+@@'

blob.png 

# ifconfig | sed -n 2p | sed 's@^.*inet'@@ | sed 's@ net.*$@@'

blob.png 

7、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数

# ls /mnt/Packages/*.rpm | sed 's@\.rpm@@' | sed 's@.*\.@@' | sort|uniq -c

blob.png

# ls /mnt/Packages/ *.rpm | sed 's@\.rpm@@' | sed 's@.*\<@@' | sort |uniq –c

blob.png

# ls /mnt/Packages/*.rpm | sed -r 's@.*\.(.*)\.rpm@\1@' | sort |uniq –c

blob.png

# ls /mnt/Packages/*.rpm | rev | cut -d. -f2 | sort | uniq –c

blob.png

原创文章,作者:Aaron_wang,如若转载,请注明出处:http://www.178linux.com/32045