我是shell编程的新手,目前面临解决方案的障碍,
如果列B相同,我想连接列A值。
以下是示例输入
Col A Col B
AAA www.google.com
BBB www.google.com
CCC www.gmail.com
DDD www.yahoo.com
预期产出
Col A Col B
AAA,BBB www.google.com
CCC www.gmail.com
DDD www.yahoo.com
我使用下面的Awk命令来隔离重复的条目,
awk 'NR == 1 {p=$2; next} p == $2 { printf "%s,%s\n",$1,$2} {p=$2}' FS="," Input.csv
但我无法将重复项隔离开来。
任何建议或指示都将受到高度赞赏。
答案 0 :(得分:0)
如果您不担心输出的顺序(就像它应该与显示的Input_file相同),那么以下内容可能对您有帮助。
awk 'FNR==1{print;next} {a[$2]=a[$2]?a[$2] "," $1:$1} END{for(i in a){print a[i],i}}' OFS="\t" Input_file
输出如下:
Col A Col B
CCC www.gmail.com
DDD www.yahoo.com
AAA,BBB www.google.com