我有数千个.tsv
个文件,我在这里提取第2列等于第6列的行。
我可以使用下面的bash脚本,但我无法在输出中附加列名(标题)。
包含标题的方法是什么?
for x in *.tsv; do
awk '$2==$6' <"$x" >"$x.tmp"
mv "$x.tmp" "$x"
done
答案 0 :(得分:2)
如果您想根据两个条件进行打印,请说明:
awk 'FNR==1 || $2==$6' file
这将打印以下任何一行:
$2==$6
条件。另外,请注意,您不需要使用bash循环,awk
可以执行此操作:
awk '(FNR==1 || $2==$6) {print > FILENAME".bk"}' *.tsv