可以使用awk命令来解决这个问题。下面是一个示例:
awk '{
arr[$1] = arr[$1] " " $0
} END {
for (key in arr) {
print arr[key]
}
}' input.txt
在上面的命令中,我们使用arr
数组来保存每个不同的键的值。数组的键是第一列,值是匹配的行。在每次读取行时,我们将当前行附加到数组中相应键的行的末尾。在结束执行时,我们遍历数组并打印所有的值。这样,所有的匹配行都被合并在一起了。
注意,这种方法会在第一列中遇到相同值的时候合并行。如果你只想合并特定的列或字段,可以使用awk命令的$2
或$3
等类似的语法来引用它们。
另外,你可能还想要在输出中添加一些分隔符等格式化内容,以更好地阅读输出。这可以通过在print
语句中添加适当的字符串来实现。
输入文件(input.txt)的例子:
apple B01 15
banana B02 25
apple B03 11
orange B04 20
banana B05 30
输出结果:
orange B04 20
banana B02 25 banana B05 30
apple B01 15 apple B03 11