Linux awk小記

qingyezhu發表於2016-03-01

預備知識:

-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