awk的常用套路

示例文本 abc.txt 内容:

one    two     three     four     five
12    23        33        15        99 
66    33        11        61        88
13   33     58     90     29

 

1、打印行的指定字段,默认以空格分隔

admin@DESKTOP-4N13UR2:~$ awk '{print $1,$4}' abc.txt
one four
12 15
66 61

为什么引号中要加一个大括号?因为大括号内是要输出的内容,和其他内容区分开。

2、打印带条件的字段,$0是打印当前字段(满足条件的)

admin@DESKTOP-4N13UR2:~$ cat abc.txt
one    two     three     four     five
12    23        33        15        99
66    33        11        61        88
13   33     58     90      29
admin@DESKTOP-4N13UR2:~$ awk '$2==33 && $3==11 {print $0}' abc.txt
66    33        11        61        88

3、指定分隔符,对付不是以空白作为分割的文本

admin@DESKTOP-4N13UR2:~$ cat abc.txt
12;23;33;15;99
66;33;11;61;88
13;33;58;90;29
admin@DESKTOP-4N13UR2:~$ awk 'BEGIN{FS=";"} {print $1,$3}' abc.txt
12 33
66 11
13 58

 

posted @ 2022-03-28 17:35  立体风  阅读(28)  评论(0编辑  收藏  举报