我知道有几个问题是关于使用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
答案 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