如何在bash脚本输出中包含tsv / csv头文件

时间:2015-12-04 11:23:13

标签: bash csv unix awk sed

我有数千个.tsv个文件,我在这里提取第2列等于第6列的行。

我可以使用下面的bash脚本,但我无法在输出中附加列名(标题)。

包含标题的方法是什么?

for x in *.tsv; do
   awk '$2==$6' <"$x" >"$x.tmp"
   mv "$x.tmp" "$x"
done

1 个答案:

答案 0 :(得分:2)

如果您想根据两个条件进行打印,请说明:

awk 'FNR==1 || $2==$6' file

这将打印以下任何一行:

  • 符合$2==$6条件。
  • 是第一行。

另外,请注意,您不需要使用bash循环,awk可以执行此操作:

awk '(FNR==1 || $2==$6) {print > FILENAME".bk"}' *.tsv