【場景】
在一個大文件中(上千行數據);取NR%126的值為1-8,76的行。看有沒有很好的寫法
【實現】
[li0924@localhost lottu]$ seq 300|awk '{A=NR%126;if(A>=1&&A<=8||A==76)print}' 1 2 3 4 5 6 7 8 76 127 128 129 130 131 132 133 134 202 253 254 255 256 257 258 259 260
還有seesea兄的巧妙的思路,利用數組的值;代碼如下:
awk 'BEGIN{for(i=1;i<=8;++i) ar[i]=1; ar[76] = 1;} (NR%126 in ar)' awk 'BEGIN{for(i=1;i<=8;++i) ar[i]=1; ar[76] = 1;} ar[NR%126]'