需求
文件每一行有两列,需要将第一列相同的行合并。
例如:
111:aaa
22:bbb
22:ccc
合并之后变为
111:aaa
22:bbbccc
实现
例如:文件名为test.txt
cat test.txt | awk -F ':' '{a[$1]=a[$1]$2END{for(i in a) print i":" a[i]}}'
执行过程
a[] 可以看做是数组
从test.txt逐行执行a[$1]=a[$1]$2:
第一行:a[111]之前为空,执行后a[111]={空}aaa
第二行:a[22]本来为空,执行后a[22]={空}bbb
第三行:a[22]目前为bbb,执行后a[22]=bbbccc
END
执行for循环,输出a
111:aaa
22:bbbccc