awk简单用法-(1)

一、awk基本操作


awk指定多个分割符,分隔符中有:和空格,还有:和空格的组合,这个时候需要指定多个分隔符 -F'[ :]+',[ :]表示分隔符为:和空格,一个或者多个+号表示空格和:的组合也为一个分隔符

打印倒数第一列,以空格和:and空格 “:”的组合为分隔符
[root@VM_0_84_centos ~]# cat aaa |awk -F'[: ]+' '{print $NF}'
number
100
0
#打印倒数第二列,以空格和:and空格 “:”的组合为分隔符
[root@VM_0_84_centos ~]# cat aaa |awk -F'[: ]+' '{print $(NF-1)}'
age
27
30

假如分隔符为空格,打印第一列    $1为第一列的数据   $0打印整个文件的内容

cat aaa |awk '{print $1}'

二、awk的NR、NF内置变量的应用

 NF变量的使用:打印文件的字段数,NF指的是字段的数量,有时候由于文本数据量太大,而且字段切分不规则,会导致使用 '{print $n}'取值会出现错误,建议使用NF来取响应的字段

[root@VM_0_84_centos ~]# cat aaa 
name: age  number
ghd  27  100
gym  30  0
[root@VM_0_84_centos ~]# cat aaa |awk '{print NF}'
3
3
3
[root@VM_0_84_centos ~]# cat aaa |awk '{print $NF}'
number
100
0
[root@VM_0_84_centos ~]# cat aaa |awk '{print $(NF-2)}'
name:
ghd
gym
[root@VM_0_84_centos ~]# cat aaa |awk '{print NF}'
View Code

 NR变量:打印文件的行的内容

#打印文件的第二行内容
[root@VM_0_84_centos ~]# cat test.txt |awk 'NR==2{print $0}'
ghd  27  100

#打印文件的第二行第一个列(字段)的内容
[root@VM_0_84_centos ~]# cat test.txt |awk 'NR==2{print $1}'
ghd

#打印大于第一行小于第三行的所属行的所有字段,$n为字段数(列)
cat test.txt |awk 'NR>1&&NR<3{print $0}'
ghd  27  100

#不打印第二行的其它行的所有字段
[root@VM_0_84_centos ~]# cat test.txt |awk 'NR!=2{print $0}'
name: age  number
gym  30  0
View Code

练习:

打印文件所有内容,并显示文件内容所属行和字段

 cat test.txt |awk -F'[ :]+' '{print NR,NF,$0}'
1 3 name: age  number
2 3 ghd  27  100
3 3 gym  30  0
View Code

 

转载于:https://www.cnblogs.com/python-cat/p/7845935.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值