8月10日 sed练习和作业

  • 删除centos7系统/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符
    sed -r 's/^[[:space:]]+//' /etc/grub2.cfg

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

  • 在centos6系统/root/install.log每一行行首增加#号
    sed 's/^/#/' install.log

  • 在/etc/fstab文件中不以#开头的行的行首增加#号
    sed 's/^[^#]/#/' /etc/fstab

  • 处理/etc/sysconfig/network-scripts/路径,使用grep和sed命令取出其目录名和基名

echo /etc/sysconfig/network-scripts/ |grep -o '^/.*/\<' 
/etc/sysconfig/
echo /etc/sysconfig/network-scripts/ |egrep -o '[^/]+/?$' 
echo /etc/sysconfig/network-scripts/ |sed -r 's@^(/.*/)([^/]+/?$)@\1@'
echo /etc/sysconfig/network-scripts/ |sed -r 's@^(/.*/)([^/]+/?$)@\2@'
  • 利用sed 取出ifconfig命令中本机的IPv4地址
    ifconfig ens33|sed -n -e '2s/^.*et //' -e '2s/ .*$//p'
  • 统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数
[root@centos7 Packages]#ls *.rpm|egrep -o "[^.]+\.rpm$"|sort|uniq -c
   2072 i686.rpm
   3044 noarch.rpm
   4247 x86_64.rpm
[root@centos7 Packages]#ls *.rpm|sed -r 's@(^.*\.)([^.]+\.rpm$)@\2@'|sort|uniq -c
   2072 i686.rpm
   3044 noarch.rpm
   4247 x86_64.rpm
  • 统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)
egrep -o "[[:alpha:]]+" /etc/init.d/functions|sort|uniq -c |sort -n
sed 's@[^[:alpha:]]@\n@g' /etc/init.d/functions|sed '/^$/d'|sort|uniq -c|sort -n
  • 将文本文件的n和n+1行合并为一行,n为奇数行
方法一
[root@centos7 ~]#sed -n '1~2p' /etc/issue>/app/f1
[root@centos7 ~]#sed -n '2~2p' /etc/issue>/app/f2
[root@centos7 ~]#cd /app
[root@centos7 app]#paste f1 f2
\S  Kernel \r on an \m
my tty is \l    my hostname is \n
the time is \t  
方法二
sed -n 'N;s/\n//p' f1

你可能感兴趣的:(8月10日 sed练习和作业)