linux shell 之 awk sed使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35744460/article/details/89240008

awk

取数

[root@mysql001 ~]# vi awk.log
1 2 3
a d f
s b n
$0取全部数据
[root@mysql001 ~]# awk '{print $0}' awk.log 
1 2 3
a d f
s b n
$1取第一列
[root@mysql001 ~]# awk '{print $1}' awk.log 
1
a
s
awk 默认识别空格,别的分隔符需要 -F指定
[root@mysql001 ~]# vi awk.log
1,2,3
a,d,f
s,b,n

[root@mysql001 ~]# awk '{print $1}' awk.log 
1,2,3
a,d,f
s,b,n
[root@mysql001 ~]# cat awk.log |awk '{ print $1 }'
1,2,3
a,d,f
s,b,n
[root@mysql001 ~]# cat awk.log |awk -F "," '{ print $1 }'
1
a
s
[root@mysql001 ~]# cat awk.log |awk -F "," '{ print $3 }'
3
f
n
NR取行
[root@mysql001 ~]# cat awk.log |awk -F "," 'NR>2'
NR print 取 具体的行列
[root@mysql001 ~]# cat awk.log |awk -F "," 'NR>1{ print $3 }'
f
n





sed

替换





[root@mysql001 ~]# vi sed.log
4,5,6
q,w,e
a,s,d
z,x,c
替换 a=>aa
[root@mysql001 ~]# sed -i 's/a/aa/' sed.log 
[root@mysql001 ~]# cat sed.log 
4,5,6
q,w,e
aa,s,d
z,x,c
[root@mysql001 ~]# sed  -i "s/aa/aa'/" sed.log
[root@mysql001 ~]# cat sed.log 
4,5,6
q,w,e
aa',s,d
z,x,c
[root@mysql001 ~]# sed  -i "s?aa'?lll?" sed.log
[root@mysql001 ~]# cat sed.log 
4,5,6
q,w,e
lll,s,d
z,x,c
/g 全局替换
[root@mysql001 ~]# sed -i "s/w/q/g" sed.log
[root@mysql001 ~]# cat sed.log 
4,5,6
q,q,e
lll,s,d
z,x,c
在前面每一行追加ooo
[root@mysql001 ~]# sed -i "s/^/ooo&/g" sed.log 
[root@mysql001 ~]# cat sed.log 
ooo4,5,6
oooq,q,e
ooolll,s,d
oooz,x,c
在后面每一行追加
[root@mysql001 ~]# sed -i "s/$/&ooo/g" sed.log 
[root@mysql001 ~]# cat sed.log 
ooo4,5,6ooo
oooq,q,eooo
ooolll,s,dooo
oooz,x,cooo

猜你喜欢

转载自blog.csdn.net/qq_35744460/article/details/89240008