Linux awk小记

时间:2021-09-05 08:15:59

预备知识:

-F:表示某行使用的分隔符,默认是空格;

NR:表示当前是第几行;

NF:表示文件中的某行根据分隔符共有几列;

1、打印某一列

awk '{print $1}' text.txt

其中$0表示某一行,$1~$n表示某一行中的按空格隔开的第几列

2、通过BEGIN与END进行文件计算

文本内容:

aaa 22.2
bbb 11.1
abc 123.1
aaa 12
bac 13
aac 111
bbb 1121
aaa 123
cba 123
aaa 321
aaa 23

awk '/b/ {sum += $2; print} END{ print sum}' text.txt 表示包含b的行

bbb 11.1
abc 123.1
bac 13
bbb 1121
cba 123
1391.2

awk '/^b/ {sum += $2; print} END{ print sum}' text.txt    表示以b开头的行

bbb 11.1
bac 13
bbb 1121
1145.1