一、案例一
样本数据
bash
name age
alice 21
ryan 30
命令
bash
awk '{for(i=1;i<=NF;i++){arr[i]=arr[i]" "$i}}END{for(i=1;i<=NF;i++)print arr[i]}' a.txt
awk是按行读取文本数据的,且每次读取一行,默认按空格分割。
所以,这里的for只需要一层即可。
效果

案例二
样本数据
bash
74683 1001
74683 1002
74683 1011
74684 1000
74684 1001
74684 1002
74685 1001
74685 1011
74686 1000
命令
bash
awk '{if($1 in arr)arr[$1]=arr[$1]" "$2;else arr[$1]=$2}END{for(i in arr)printf "%s %s\n",i,arr[i]}' a.txt
这个行专列,类似于MySQL的group by效果
效果
