awk处理案例十一--处理“地学”应用中的一个问题
【场景】
有一文件aa如下:
       650571.37     2188705.56              1.
       654437.44     2187283.55              1.
       653184.30     2187230.23              1.
       652925.37     2187289.22              1.
       650571.37     2188705.56              1.
       649691.51     2186999.15              1.
       652171.12     2186759.19              1.
       651886.72     2186794.74              1.
       651415.69     2186785.85              1.
       651086.85     2186812.51              1.
       650589.15     2186919.17              1.
       649691.51     2186999.15              1.
       637433.66     2186183.54              1.
       637890.88     2186243.18              1.
       636877.04     2186094.09              1.
       637433.66     2186183.54              1.
       645330.86     2190220.43              1.
       645920.33     2190210.21              1.
       644197.83     2190239.87              1.
       644734.38     2190242.31              1.
       645330.86     2190220.43              1.
现在我想用awk将其变成文件 bb 如下:
       650571.37     2188705.56              1.
       654437.44     2187283.55              1.
       653184.30     2187230.23              1.
       652925.37     2187289.22              1.
       650571.37     2188705.56              1.
       649691.51     2186999.15              2.
       652171.12     2186759.19              2.
       651886.72     2186794.74              2.
       651415.69     2186785.85              2.
       651086.85     2186812.51              2.
       650589.15     2186919.17              2.
       649691.51     2186999.15              2.
       637433.66     2186183.54              3.
       637890.88     2186243.18              3.
       636877.04     2186094.09              3.
       637433.66     2186183.54              3.
       645330.86     2190220.43              4.
       645920.33     2190210.21              4.
       644197.83     2190239.87              4.
       644734.38     2190242.31              4.
       645330.86     2190220.43              4.
【处理规律】:这数据有个规律,既每段数据首尾两组数是相同的
【代码】
awk 'BEGIN{count=1}{if(!a[$1$2]++){print $1,$2,count"."}else{print $1,$2,count".";count++}}'
【解析】
  重点还是数组a;第一次出现;count没做什么操作;当第二次出现时;count++;
【测试如下】
[li0924@localhost awk]$ awk 'BEGIN{count=1}{if(!a[$1$2]++){print $1,$2,count"."}else{print $1,$2,count".";count++}}' aa 650571.37 2188705.56 1. 654437.44 2187283.55 1. 653184.30 2187230.23 1. 652925.37 2187289.22 1. 650571.37 2188705.56 1. 649691.51 2186999.15 2. 652171.12 2186759.19 2. 651886.72 2186794.74 2. 651415.69 2186785.85 2. 651086.85 2186812.51 2. 650589.15 2186919.17 2. 649691.51 2186999.15 2. 637433.66 2186183.54 3. 637890.88 2186243.18 3. 636877.04 2186094.09 3. 637433.66 2186183.54 3. 645330.86 2190220.43 4. 645920.33 2190210.21 4. 644197.83 2190239.87 4. 644734.38 2190242.31 4. 645330.86 2190220.43 4.
 

                
            
        
浙公网安备 33010602011771号