我使用的是 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”。