SED和AWK的单行命令总结(一)

根据转载写一遍

文本间隔处理:
1
在每一行的后面增加一个空白行

[root@cyf opt]# cat  test 
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# cat test  |sed G
# CentOS-Base.repo



[base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6



[root@cyf opt]# cat test  |awk '{printf("%s\n\n",$0)}'
# CentOS-Base.repo



[base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6



[root@cyf opt]# 

2
将原来的所有空行删除并在每一行后面增加一空行。
这样在输出的文本中每一行后面将有且只有一空行。

[root@cyf opt]# cat  test 
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# cat test  |sed '/^$/d;G'
# CentOS-Base.repo

[base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# cat test  |awk '!/^$/{printf("%s\n\n",%0)}'
awk: !/^$/{printf("%s\n\n",%0)}
awk:                       ^ syntax error
[root@cyf opt]# cat test  |awk '!/^$/{printf("%s\n\n",$0)}'
# CentOS-Base.repo

[base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# ^C

3
在每一行后面增加两行空白

[root@cyf opt]# cat  test 
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# cat  test |sed 'G;G'
# CentOS-Base.repo





[base]


name=CentOS-$releasever - Base


mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os


#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/


gpgcheck=1


gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6





[root@cyf opt]# cat  test  |awk  '{printf("%s\n\n\n",$0)}'
# CentOS-Base.repo





[base]


name=CentOS-$releasever - Base


mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os


#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/


gpgcheck=1


gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6





[root@cyf opt]# 

4
删除偶数行

root@cyf opt]# cat   test 
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# cat test |sed 'n;d'
# CentOS-Base.repo
[base]
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1

[root@cyf opt]# cat test |awk '{f=!f;if(f)print $0}'
# CentOS-Base.repo
[base]
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1

5
在匹配gpgcheck的行之前加入一个空行

[root@cyf opt]# cat  test 
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# cat test   |sed '/gpgcheck/{x;p;x}'
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# cat  test | awk '{{if(/gpgcheck/)printf("\n%s\n",$0);else print $0}}'
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# 

6
在匹配gpgcheck的行之后加入一个空行

[root@cyf opt]# cat test  
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# cat test  |sed '/gpgcheck/G'
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# cat test |awk '{if(/gpgcheck/)printf("%s\n\n",$0);else print $0}'
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# 

7
在匹配gpgcheck的行之前之后各加入一个空行

[root@cyf opt]# cat  test 
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# cat test | sed '/gpgcheck/{x;p;x;G;}'
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# cat test | awk '{if(/gpgcheck/)printf("\n%s\n\n",print $0);else print $0}'
awk: {if(/gpgcheck/)printf("\n%s\n\n",print $0);else print $0}
awk:                                  ^ syntax error
[root@cyf opt]# cat test | awk '{if(/gpgcheck/)printf("\n%s\n\n", $0);else print $0}'
# CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[root@cyf opt]# 

出处:

 http://linuxtoy.org/archives/sed-awk.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值