我正在尝试使用awk将第一列和第二列的第一行打印为单列。我正在使用以下awk单线
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”,但没有帮助。
先感谢您
第一个解决方案:我将采用以下方法,以便我们也可以处理多个id,并使用GNU中显示的示例进行编写和测试awk
。
awk '{a[$1]=(a[$1]?a[$1] ORS:"")$2} END{for(i in a){print i ORS a[i]}}' Input_file
第二种解决方案:考虑您的Input_file的第一字段是否已排序,然后尝试执行以下操作。
awk 'prev!=$1{print $1 ORS $2;prev=$1;next} {print $2}' Input_file
第三种解决方案:如果您的Input_file没有按第一列排序,则sort
运行它awk
。
sort -k1 Input_file | awk 'prev!=$1{print $1 ORS $2;prev=$1;next} {print $2}'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句