Shell

如果第 2 列中有值,則 shell 腳本列印行

  • August 18, 2015
1 *2* 3 4
3 1 4 2
1 4 3 2
4 *2* 1 3

如何列印第二列中有2的所有行。

使用awk(或其表親gawk):

gawk '$2==2 {print $0}' inputfile

列中awk由 a 表示$$1第一列,$2第二列等。整行由 給出$0。所以這個例子顯示:如果第 2 列等於 2,則列印整行。

編輯:正如 devnull 所說:

gawk '$2==2' inputfile 

足夠。要列印第二列中 2 和最後使用 4 的行$NF,它代表欄位數(即最後一列):

gawk '$2==2 && $NF==4'  inputfile

引用自:https://unix.stackexchange.com/questions/94047