免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4511 | 回复: 14
打印 上一主题 下一主题

[文本处理] awk 求解 类似输出成表 [复制链接]

论坛徽章:
2
金牛座
日期:2013-11-15 15:50:59巨蟹座
日期:2013-12-13 11:17:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-30 10:38 |只看该作者 |倒序浏览
  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
复制代码
如何从源码 提取分出 这样效果。

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
2 [报告]
发表于 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 ~]#
复制代码

论坛徽章:
2
金牛座
日期:2013-11-15 15:50:59巨蟹座
日期:2013-12-13 11:17:52
3 [报告]
发表于 2013-12-30 10:56 |只看该作者
这运用到什么知识,点拔一下回复 2# yestreenstars


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 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       
   

论坛徽章:
50
15-16赛季CBA联赛之广夏
日期:2018-11-05 09:42:462015年亚冠纪念徽章
日期:2015-07-23 11:58:122015亚冠之广州富力
日期:2015-07-07 08:26:172015亚冠之塔什干棉农
日期:2015-06-29 09:08:072015年亚洲杯之伊朗
日期:2015-03-08 20:51:012015年迎新春徽章
日期:2015-03-04 09:58:11未羊
日期:2014-10-16 22:41:47处女座
日期:2014-10-16 15:33:33酉鸡
日期:2014-03-13 12:54:10巳蛇
日期:2014-03-10 14:39:052015亚冠之德黑兰石油
日期:2015-07-29 12:46:372015亚冠之德黑兰石油
日期:2015-08-07 12:54:11
5 [报告]
发表于 2013-12-30 11:02 |只看该作者
  1. awk -vRS='<[^>]*>' 'NF{printf !(++i%5)?$0"\n":$0"\t"}'
复制代码

论坛徽章:
2
金牛座
日期:2013-11-15 15:50:59巨蟹座
日期:2013-12-13 11:17:52
6 [报告]
发表于 2013-12-30 11:03 |只看该作者
good 回复 4# jason680


   

论坛徽章:
2
金牛座
日期:2013-11-15 15:50:59巨蟹座
日期:2013-12-13 11:17:52
7 [报告]
发表于 2013-12-30 11:03 |只看该作者
good回复 5# WilliBhamlll


   

论坛徽章:
0
8 [报告]
发表于 2013-12-30 11:05 |只看该作者
弄个非AWK的
  1. grep -oP '(?<=<td>)[^<]*' file | xargs -n 5 | column -t
复制代码

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
9 [报告]
发表于 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行

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
10 [报告]
发表于 2013-12-30 11:09 |只看该作者
  1. http://bbs.chinaunix.net/thread-4116979-1-1.html
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP