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

Chinaunix

標題: awk 求解 類似輸出成表 [打印本頁]

作者: 老狼000    時間: 2013-12-30 10:38
標題: awk 求解 類似輸出成表
  1. <table width="700" style="margin-top:10px;">
  2.     <tbody>
  3.      <tr style="background-color:#cccccc">
  4.       <td>QQ</td>
  5.       <td>昵稱</td>
  6.       <td>年齡</td>
  7.       <td>性別</td>
  8.       <td>工作號</td>
  9.      </tr>
  10.      <tr>
  11.       <td>10000</td>
  12.       <td>heihei</td>
  13.       <td>38</td>
  14.       <td>男</td>
  15.       <td>60623498</td>
  16.      </tr>
  17.      <tr>
  18.       <td>10000</td>
  19.       <td>heihei</td>
  20.       <td>38</td>
  21.       <td>男</td>
  22.       <td>61445107</td>
  23.      </tr>
  24.      <tr>
  25.       <td>10000</td>
  26.       <td>heihei</td>
  27.       <td>38</td>
  28.       <td>男</td>
  29.       <td>63128699</td>
  30.      </tr>
  31.      <tr>
  32.       <td>10000</td>
  33.       <td>heihei</td>
  34.       <td>38</td>
  35.       <td>男</td>
  36.       <td>22713533</td>
  37.      </tr>
  38.      <tr>
  39.       <td>10000</td>
  40.       <td>heihei</td>
  41.       <td>38</td>
  42.       <td>男</td>
  43.       <td>61843200</td>
  44.      </tr>
  45.      <tr>
  46.       <td>10000</td>
  47.       <td>heihei</td>
  48.       <td>38</td>
  49.       <td>男</td>
  50.       <td>18023154</td>
  51.      </tr>
  52.      <tr>
  53.       <td>10000</td>
  54.       <td>heihei</td>
  55.       <td>38</td>
  56.       <td>男</td>
  57.       <td>54799193</td>
  58.      </tr>
  59.     </tbody>
  60.    </table>
復制代碼
  1. QQ      昵稱 年齡 性別   工作號
  2. 10000 heihei 38   男    60623498
  3. 10000 heihei 38   男    61445107
  4. 10000 heihei 38   男    63128699
  5. 10000 heihei 38   男    22713533
  6. 10000 heihei 38   男    61843200
  7. 10000 heihei 38   男    18023154
  8. 10000 heihei 38   男    54799193
復制代碼
如何從源碼 提取分出 這樣效果。

作者: yestreenstars    時間: 2013-12-30 10:54
  1. [root@localhost ~]# awk -F '[<>]' '/<tr/{k=i=1;next}k&&i++<6{printf "%s\t",$3;if(i==6)print ""}' i
  2. QQ      昵稱    年齡    性別    工作號
  3. 10000   heihei  38      男      60623498
  4. 10000   heihei  38      男      61445107
  5. 10000   heihei  38      男      63128699
  6. 10000   heihei  38      男      22713533
  7. 10000   heihei  38      男      61843200
  8. 10000   heihei  38      男      18023154
  9. 10000   heihei  38      男      54799193
  10. [root@localhost ~]#
復制代碼

作者: 老狼000    時間: 2013-12-30 10:56
這運用到什么知識,點拔一下回復 2# yestreenstars


   
作者: jason680    時間: 2013-12-30 10:59
回復 1# 老狼000

$ awk -F'[><]' '$2=="td"{printf $3"\t"}$2=="/tr"{print""}' FILE
QQ        昵稱        年齡        性別        工作號       
10000        heihei        38        男        60623498       
10000        heihei        38        男        61445107       
10000        heihei        38        男        63128699       
10000        heihei        38        男        22713533       
10000        heihei        38        男        61843200       
10000        heihei        38        男        18023154       
10000        heihei        38        男        54799193       
   
作者: WilliBhamlll    時間: 2013-12-30 11:02
  1. awk -vRS='<[^>]*>' 'NF{printf !(++i%5)?$0"\n":$0"\t"}'
復制代碼

作者: 老狼000    時間: 2013-12-30 11:03
good 回復 4# jason680


   
作者: 老狼000    時間: 2013-12-30 11:03
good回復 5# WilliBhamlll


   
作者: ljwd1000    時間: 2013-12-30 11:05
弄個非AWK的
  1. grep -oP '(?<=<td>)[^<]*' file | xargs -n 5 | column -t
復制代碼

作者: 這個冬天不冷    時間: 2013-12-30 11:08
  1. [root@everIover ~]# awk -F "[<>]" '/<tr/{n=0;print "" }{if(n++<=6)printf("%s\t" ,$3)}END{print ""}' i

  2.         QQ      昵稱    年齡    性別    工作號
  3.         10000   heihei  38      男      60623498
  4.         10000   heihei  38      男      61445107
  5.         10000   heihei  38      男      63128699
  6.         10000   heihei  38      男      22713533
  7.         10000   heihei  38      男      61843200
  8.         10000   heihei  38      男      18023154
  9.         10000   heihei  38      男      54799193
  10. [root@everIover ~]#
復制代碼
遇到這種問題其實和 處理輸出每個關鍵字的 的下幾行 差不多。。。。關鍵是變量 n,來控制輸出  下n行
作者: 這個冬天不冷    時間: 2013-12-30 11:09
  1. http://www.72891.cn/thread-4116979-1-1.html
復制代碼

作者: li0924    時間: 2013-12-30 11:18
  1. awk -F"[><]" '/td/{printf $3"\t"}/\/tr/{print ""}'
復制代碼

作者: reyleon    時間: 2013-12-30 11:35
  1. sed -n '/tr/{:1;N;/\/tr/!b1;s/<[^>]*>\|\n//g;p}' file
復制代碼

作者: 老狼000    時間: 2013-12-30 11:48
這個 簡易多了。理解 上回復 8# ljwd1000


   
作者: zw421961    時間: 2013-12-30 14:07
awk '/<tr/{
  tmp="";
  for (i=0;i<4;i++){
    getline;
    tmp=gensub(/[ +<td>|<\/td>]/, "", "g", $0);
    printf("%s\t", tmp);
  }
  getline;
  tmp=gensub(/[ +<td>|<\/td>]/, "", "g", $0);
  printf("%s\n", tmp);
}' file
作者: reb00t    時間: 2013-12-30 20:46
  1. awk  '/<td>/{t=gensub(/<td>(.*)<\/td>/,"\\1",$0);if(++i%5>0)printf t;else print t}' 1.txt |column  -t
  2. QQ     昵稱    年齡  性別  工作號
  3. 10000  heihei  38    男    60623498
  4. 10000  heihei  38    男    61445107
  5. 10000  heihei  38    男    63128699
  6. 10000  heihei  38    男    22713533
  7. 10000  heihei  38    男    61843200
  8. 10000  heihei  38    男    18023154
  9. 10000  heihei  38    男    54799193
復制代碼





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