您的位置:首页 > 其它

每日一题--5 awk进阶

2018-10-12 08:35 337 查看
每周绝望原数据文件:
id=aa&bb&type&name=cc
bb&id=aa&name=cc&type
id=aa&type&bb&name=dd
type&id=aa&cc&name=bb
id=bb&cc&type&name=bb
aa&id=bb&name=bb&type

整理并去重,得到效果:

id=aa&bb&name=cc&type
id=aa&bb&name=dd&type
id=aa&cc&name=bb&type
id=bb&cc&name=bb&type
id=bb&aa&name=bb&type

提示:awk循环、判断、变量赋值、去重机制

第一个里程碑

awk -F '&' -v OFS='&' '{for(i=1;i<=4;i++)printf"%s" $i;printf "\n"}' awk.txt   实现每个遍历了

awk -F '&' -v OFS='&' '{for(i=1;i<=4;i++){if($i~/^id.*$/)A=$i;if($i~/^[a-z]{2}$/)B=$i;if($i~/^name.*/)C=$i;if($i~/^type$/)D=$i}print A,B,C,D}' awk.txt

echo {a..z} | xargs -n 1 >awk.txt

利用awk去除g所在行的上下5行

for j in `awk '/^j$/{for(i=NR-5;i<=NR+5;i++)print i}' 1.txt `;do awk -v j=$j 'NR==j{print $0}' 1.txt;done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  每日一题