AWK CSV 流编辑,当第二列> = 0时,将第三列合并为相同的第一列

AWK CSV 流编辑,当第二列> = 0时,将第三列合并为相同的第一列

我使用的是 Windows,只听说过 Linux 的 awk 等,因此我只能想象无需实际编写脚本即可实现这一点:

我有类似的数据

..
162     42      A single serving
162     62      of french fries, please
164     -1      ABC
164     -1      1
..

我希望变成

..
A single serving of french fries, please
..

所以规则是

当第二列 >= 0 时,将第三列与相同的第一列合并。

我将尝试寻找适用于 Windows 的 awk。

答案1

使用数组构建字符串:

awk -F '\t' '
  $2 >= 0 {str[$1] = str[$1] $3 " "}
  END {for (s in str) print str[s]}
' filename

我希望您的数据实际上是制表符分隔的,因为否则第一行的 $3 ==“A”。

相关内容