day18 三剑客之awk

sed反向引用补充
sed反向引用补充

awk

格式awk '找谁{干啥}'
执行过程


awk执行过程

取行与取列

取行:awk 'NR==1' lidao.txt

[root@yuyingqian ~]# cat lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
[root@yuyingqian ~]# awk 'NR==1' lidao.txt
101,oldboy,CEO

取列:awk '{print 1,2}' oldboy.txt

[root@yuyingqian ~]# cat oldboy.txt
I am oldboy teacher!
I teach linux.

I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com 
our size is http://blog.oldboyedu.com 
my qq is 49000448

not 4900000448.
my god ,i am not oldbey,but OLDBOY! 
ASAaSAsa`ZZZ
abcsadaabc
[root@yuyingqian ~]# awk '{print $1,$2}' oldboy.txt 
I am
I teach

I like
my blog
our size
my qq

not 4900000448.
my god
ASAaSAsa`ZZZ 
abcsadaabc

取列设置分隔符
单个:awk -F "," '{print $3,$7}' /oldboy/fs.txt

[root@yuyingqian /oldboy]# cat fs.txt 
I am lidao,my qq is 918391635
[root@yuyingqian /oldboy]# awk -F "," '{print $1,$7}' fs.txt 
I am lida

多个:awk -F "[, ]" '{print $3,$7}' /oldboy/fs.txt

[root@yuyingqian /oldboy]# cat fs.txt 
I am lidao,my qq is 918391635
[root@yuyingqian /oldboy]# awk -F "[, ]" '{print $3,$7}' /oldboy/fs.txt 
lidao 918391635

取行取列并且设置分隔符并且行首有相同的字符
ip a s eth0 | awk -F "[/ ]+" 'NR==3 {print $3}'

[root@yuyingqian ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
   link/ether 00:0c:29:85:96:73 brd ff:ff:ff:ff:ff:ff
   inet 10.0.0.201/24 brd 10.0.0.255 scope global noprefixroute eth0
      valid_lft forever preferred_lft forever
   inet6 fe80::3422:abf1:b8b1:db26/64 scope link noprefixroute 
      valid_lft forever preferred_lft forever
[root@yuyingqian ~]# ip a s eth0 | awk -F "[/ ]+" 'NR==3 {print $3}'
10.0.0.201

过滤 $NF表示最后一列
比大小 简单的比大小不用显示内容直接$3就好了
awk -F ":" '$3>999' /etc/passwd

[root@yuyingqian ~]# awk -F ":" '$3>999' /etc/passwd
oldboy:x:1000:1000::/home/oldboy:/bin/bash
yuyingqian:x:1001:1001::/home/yuyingqian:/bin/bash
boy:x:1002:1002::/home/boy:/bin/bash
girl:x:1003:1003::/home/girl:/bin/bash
oldgirl:x:1004:1004::/home/oldgirl:/bin/bash

过滤范围 awk -F ":" '$4>999&&$<0' /etc/passwd

[root@yuyingqian ~]# awk -F ":" '$4>0&&$4<1000' /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容