亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 用awk合并行 [打印本頁]

作者: muzx    時間: 2003-06-05 14:44
標題: 用awk合并行
四行合一行

  1. cat filename
  2. 111111111
  3. 222222222
  4. 333333333
  5. 444444444
  6. 555555555
  7. 666666666
  8. 777777777
  9. 888888888
  10. 999999999

  11. awk '{if (NR%4==0){print $0} else {printf"%s ",$0}}' filename
  12. 111111111 222222222 333333333 444444444
  13. 555555555 666666666 777777777 888888888
  14. 999999999

復制代碼

作者: 林子    時間: 2003-06-05 15:31
標題: 用awk合并行
muzx: 致敬!。 高手。。! 萬分感謝。!
作者: anonimousboy    時間: 2003-06-05 15:51
標題: 用awk合并行
[quote]原帖由 "muzx"][/quote 發(fā)表:
     
哈哈,真是很好!
作者: feijin    時間: 2003-06-05 21:02
標題: 用awk合并行
學習學習 很好
作者: cdshy    時間: 2003-10-04 11:39
標題: 用awk合并行
我再bash中試了,將兩個$2改成$1才正常輸出。
作者: admirer    時間: 2003-10-04 11:57
標題: 用awk合并行
要通用可以這樣作:
  1. linecount=3
  2. awk -v n=${linecount} '{if (NR%n==0){print $0} else {printf"%s ",$0}}' filename
  3. 111111111 222222222 333333333
  4. 444444444 555555555 666666666
  5. 777777777 888888888 999999999

  6. linecount=2
  7. awk -v n=${linecount} '{if (NR%n==0){print $0} else {printf"%s ",$0}}' filename
  8. 111111111 222222222
  9. 333333333 444444444
  10. 555555555 666666666
  11. 777777777 888888888
  12. 999999999
復制代碼

作者: bjgirl    時間: 2003-10-04 12:03
標題: 用awk合并行
不通用的

  1. $n=1;m=4
  2. $while ((n<=$(cat filename|wc -l)));do
  3. > cat filename|sed -n ${n},${m}p|tr '\n' ' ';echo "\n"
  4. > ((n+=4));((m+=4));done|sed '/^$/d'
  5. 111111111  222222222  333333333  444444444
  6. 555555555  666666666  777777777  888888888
  7. 999999999
復制代碼

作者: fzbook    時間: 2003-10-04 13:14
標題: 用awk合并行
if(NR%4)==0)ORS=" ";else ORS="\n";print $0;
簡單么?呵呵
作者: admirer    時間: 2003-10-05 16:17
標題: 用awk合并行
原帖由 "fzbook" 發(fā)表:
if(NR%4)==0)ORS=" ";else ORS="\n";print $0;
簡單么?呵呵

不錯!是很簡單,但有一點小毛。>邏輯反了,括弧不配對!
改正其中的錯誤后執(zhí)行結果如下:
  1. 111111111
  2. 222222222
  3. 333333333
  4. 444444444 555555555
  5. 666666666
  6. 777777777
  7. 888888888 999999999
復制代碼

顯然不是我們想要的結果!
改正邏輯錯誤后:
  1. if(NR%4!=0)ORS=" ";else ORS="\n";print
  2. or
  3. if(NR%4==0)ORS="\n";else ORS=" ";print
復制代碼

執(zhí)行結果:
  1. awk '{if(NR%4!=0)ORS=" ";else ORS="\n";print}' a
  2. 111111111 222222222 333333333 444444444
  3. 555555555 666666666 777777777 888888888
  4. 99999999
復制代碼

這才是我們所要的。
作者: hihello2004    時間: 2004-08-16 14:49
標題: 用awk合并行

我有一問題,數(shù)據(jù)原狀與你的類似,是兩列的,F(xiàn)要合并成八列。我用你的方法試過,輸出不對。請教解決辦法。多謝。
111     111
222     222
333     333
444     444
555     555
666     666
777     777
888     888
999     999
101     101
要求合并后排列格式為如下(即八列;不足八列的不用管它):
111    111    222    333    444    555    666    777    888
999    999    101    101
作者: bjgirl    時間: 2004-09-20 00:46
標題: 用awk合并行
  1. xargs -n8 <file
復制代碼

作者: 夢藍    時間: 2004-09-24 13:31
標題: 用awk合并行
妙,樓上的
作者: gunguymadman    時間: 2004-09-24 16:10
標題: 用awk合并行
[quote]原帖由 "bjgirl"]xargs -n8 < 1[/quote 發(fā)表:
cool啊  
我對北京mm的敬仰如滔滔江水連綿不絕   如黃河泛濫一發(fā)而不可收拾啊   
三月可不吃肉了  cool




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2