awk处理案例十--筛选出相邻相同的行

【场景】

有文本如下
99 line0
100 line1
100 line2
101 line3
102 line4
103 line5
103 line6

【实现效果如下】如何将首列相同的相邻行筛选出,能到到如下结果

100 line1
100 line2
103 line5
103 line6

 

【代码如下:】

awk '{a[NR]=$1;b[NR]=$0}END{for(i=1;i<=NR;i++){if(a[i]==a[i+1])print b[i]"\n"b[i+1]}}'

【解析】
  跟上篇原理差不多;

【拓展】

 这下面有关阴月飞兄的代码;有点深奥;

awk '$1==a{print c[$1]==1?b"\n"$0:$0}{a=$1;b=$0;c[$1]++}' 

 

posted @ 2013-09-24 20:15  lottu  阅读(467)  评论(0)    收藏  举报