聚合 key-value 转为 key-valueList

一个文件A.tmp的内容如下:

10.9.20.1 m1
10.9.20.2 m1
10.9.20.3 m1
10.9.20.1 m2
10.9.20.2 m2
10.9.20.3 m2

想输出格式为:

m1: (10.9.20.1 10.9.20.2 10.9.20.3)
m2: (10.9.20.1 10.9.20.2 10.9.20.3)

办法一:

java实现:

  1. 定义Map<String,StringBuilder> map

  2. 文件按行读入、split拆分,“m1”部分作为key,“10.9.20.1”部分追加到value

  3. 遍历map,输出

办法二:

shell脚本实现:

  1. 输出到文件:

awk -F ' ' '{print $1" " >> "tmp_dir/"$2}' A.tmp

  2. 遍历叠加:

for file in ` ls tmp_dir/`
do
    target=$target""$file":"`cat "tmp_dir/"$file`"<br/>"
done