我需要打印所有字段,其中字段$ 2是以下之一(23,17,21,1)
awk -F $'\t' 'BEGIN { arr = (23, 17, 21, 1) } {if ($2 in arr) {print $0}}' file.txt
不起作用
答案 0 :(得分:3)
这应该做:
awk '$2~/^(23|17|21|1)$/' file
这将测试字段#2
是否为23,17,21或1
仅举例说明如何使用数组:
awk 'BEGIN{split("23 17 21 1",tmp); for (i in tmp) arr[tmp[i]]} $2 in arr' file
使用数字创建变量data
以使用
将split
拆分为数组arr
在每行的arr
前循环显示所有值,如果在arr中找到$2
则打印。
编辑:更新了Eds建议。