文本处理工具sed

1、删除centos7系统/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符
sed '/^$/d' /etc/grub2.cfg

2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
sed -r '/#[[:space:]]+/d;/#$/d' /etc/fstab
包括空白行:sed -r '/#[[:space:]]+/d;/#$/d;/^$/d' /etc/fstab

3、在centos6系统/root/install.log每一行行首增加#号
sed -r 's/(.*)/#1/' /root/install.log

4、在/etc/fstab文件中不以#开头的行的行首增加#号
sed -r 's/[1](.*)/#1/' /etc/fstab

5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
echo /etc/fstab/ |sed -r 's@(/.*/)([/].+/?$)@1@'
echo /etc/fstab/ |sed -r 's@(/.*/)([/].+/?$)@2@'

6、利用sed 取出ifconfig命令中本机的IPv4地址
6和7都通用:ifconfig|sed -n 2p|sed -rn 's/(^ .inet )(addr:)?(.)(( Bcas.)$|( net.$))/3/p'

7、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数
ll /misc/cd/Packages/.rpm |sed -r 's/(.)<([^.]+)(.rpm)$/2/p'|sort|uniq -c
ll /misc/cd/Packages/.rpm |sed -r 's/..([^.]+).rpm/1/'|sort|uniq -c

8、统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)
grep -wo "([[:alpha:]])+" /etc/init.d/functions |sort|uniq -c|sort -rn
egrep -o "<[[:alpha:]]+>" /etc/init.d/functions |sort |uniq -c |sort -rn
sed -r 's/[[2]]+/ /g' /etc/init.d/functions |sed '/^$/d'|sort|uniq -c|sort -rn

9、将文本文件的n和n+1行合并为一行,n为奇数行
seq 1 10|xargs -n2
seq 1 10|sed 'N;s/ / /'(需要空格就加,不需要可以不加)


  1. ^# ↩︎

  2. :alpha: ↩︎

原文地址:https://www.cnblogs.com/lqynkdcwy/p/9431906.html