2011-02-27 136 views

回答

2
awk '{for(i=3;i<=51;i+=4) printf "%s ",$i ;for(i=52;i<=119;i++) {printf "%s ",$i} ;print ""}' file 
+0

是否打印每個輸入記錄一個輸出記錄,或者爲每列一個記錄? – 2011-02-27 03:48:38

+0

它將按列打印。 – kurumi 2011-02-27 03:52:38

+0

似乎OP需要由一行中的所有列組成的輸出文件(我猜) – 2011-02-27 03:54:13

0
{a=""; 
for (i=0 ;i<=12; i++) {a = a $(3+4 * i) " "}; 
for (i=52 ;i<=119; i++) {a = a $(i) " "}; 
print a} 

HTH!

0

這是你在找什麼?

awk '{s=""; for (i = 3; i <= 51; i+=4) {s = s $i " "}; for (i = 52; i <= 119; i++) {s = s $i " "}; print s}' inputfile 
+1

似乎你需要清空變量** s **爲下一個記錄 – 2011-02-27 03:51:31

+0

@belisarius:固定。 – 2011-02-27 12:47:55

0
awk 'for(i=3;i<=119;i+a) 
    { 
    if (i<52) 
    { 
    printf "%s ",$i}; 
    a=4; 
    } 
    else 
    { 
    printf "%s ",$i}; 
    a=1; 
    } 
    }' file 
相關問題