首页 > 解决方案 > 如何使用awk将第一列和第二列的第一行打印为单列?

问题描述

我正在尝试使用 awk 将第一列和第二列的第一行打印到单列中。我正在使用以下 awk one-liner

awk 'NR==1{printf $1 OFS; next}{print $2}' infile > new_file

Input:
A123 154.1
A123 158.1
A123 159.4

Expected Output:
A123
154.1
158.1
159.4

但是单行的结果输出如下

A123 154.1
158.1
159.4

我想知道是什么错误导致了输出的变化。我在代码中包含了 '\n' 但没有帮助。

先感谢您

标签: awk

解决方案


如果这不起作用,请添加更好的输入/输出示例。

$ awk 'NR==1{print $1} {print $2}' infile
A123
154.1
158.1
159.4

此外,awk问题中显示的命令输出与给定示例不匹配。应该是这样的:

$ awk 'NR==1{printf $1 OFS; next}{print $2}' infile
A123 158.1
159.4

print函数不同,printf不会自动添加 的值ORS。并且由于next, $2of 第一行没有打印。


推荐阅读