执行awk命令时忽略标头 - 不工作

时间:2018-04-12 04:06:34

标签: awk

我知道有几个问题是关于使用awk命令忽略标题,但我已经尝试了一堆建议的方法,它仍然不适合我。

我使用awk从字符串中剪切字符,但输出文件是在没有标题的情况下生成的,即使标题不包含我要剪切的字符。

这是我的命令:

cat input | awk -F '|' '{print$2}' > output

此命令执行我需要的操作,但我的标题行保留为空。我想在" |"之后打印所有内容。符号,但我想将标题保留在我的输入文件中(涉及前两行)。我尝试过使用NR> 2,但无济于事。也许我没有将ignore header命令放在正确的位置。任何帮助是极大的赞赏。谢谢!!

以下是输入的示例:

Total Number of Mapped Reads = XXXX
Genome Final Guess Final Hit 
ACCN2|Bacterial Species 5.4 3.5
ACCN4|Bacterial Species 2.6 8.7

期望的输出:

Total Number of Mapped Reads = XXXX
Genome Final Guess Final Hit 
Bacterial Species 5.4 3.5
Bacterial Species 2.6 8.7

1 个答案:

答案 0 :(得分:1)

您的示例命令打印|的第二个字段分开的文件。如果前2个记录只有1个字段,则$2不会打印任何内容,而是打印最后一个字段$NF

$ awk -F\| '{print $NF}' file
Total Number of Mapped Reads = XXXX
Genome Final Guess Final Hit 
Bacterial Species 5.4 3.5
Bacterial Species 2.6 8.7