1. 程式人生 > >每日一題--5 awk進階

每日一題--5 awk進階

awk %s 變量 don i++ pre 每日 效果 判斷

每周絕望原數據文件: 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

每日一題--5 awk進階