我不知道awk是否是正确的工具,所以如果我应该使用别的东西,只要它在unix类系统下可用,那就没关系了!
我的数据:
first foo
first bar
second foobar
third oof
third rab
期望的输出:
first foo, bar
second foobar
third oof, rab
答案 0 :(得分:2)
像这样:
awk '{if ($1 in x){x[$1]=x[$1]","$2}else{x[$1]=$0}}END{for(i in x)print x[i]}' yourfile
<强>解释强>:
数组x []的元素由数据的第一个字段编制索引。
如果第一个字段已存储在x []中,请将逗号和第二个字段附加到x []。否则,将第二个字段存储在x []。
中最后,打印数组x []的内容。
答案 1 :(得分:0)
使用awk
:
awk '
$1==prev{line=line", "$2; next}
{if(prev) print prev,line; prev=$1;line=$2}
END{print prev,line}' file
$ cat file
first foo
first bar
second foobar
third oof
third rab
$ awk '
$1==prev{line=line", "$2; next}
{if(prev) print prev,line; prev=$1;line=$2}
END{print prev,line}' file
first foo, bar
second foobar
third oof, rab