免费注册 查看新帖 |

Chinaunix

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

[文本处理] awk格式化输出文本? [复制链接]

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-10-22 15:01 |只看该作者 |正序浏览
求个脚本:
如果我想对一个每行70个字符的文本处理,让它生成每列10个字符,每行6列,并输出字符数怎么弄呀?
如:
  1. TINHTFGNPVIPFKDGIYFAATEKSNVVRGWVFGSTMNNKSQSVIIINNSTNVVIRACNFELCDNPFFAV
  2. SKPMGTQTHTMIFDNAFNCTFEYISDAFSLDVSEKSGNFKHLREFVFKNKDGFLYVYKGYQPIDVVRDLP
复制代码
生成:

  1. 1        TINHTFGNPV        IPFKDGIYFA        ATEKSNVVRG        WVFGSTMNNK        SQSVIIINNS        TNVVIRACNF
  2. 61        ELCDNPFFAV        SKPMGTQTHT        MIFDNAFNCT        FEYISDAFSL        DVSEKSGNFK        HLREFVFKNK
  3. 121        DGFLYVYKGY        QPIDVVRDLP
复制代码

论坛徽章:
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
11 [报告]
发表于 2013-10-22 16:48 |只看该作者
  1. [root@localhost ~]# cat i
  2. TINHTFGNPVIPFKDGIYFAATEKSNVVRGWVFGSTMNNKSQSVIIINNSTNVVIRACNFELCDNPFFAV
  3. SKPMGTQTHTMIFDNAFNCTFEYISDAFSLDVSEKSGNFKHLREFVFKNKDGFLYVYKGYQPIDVVRDLP
  4. [root@localhost ~]# awk -F '' '{for(i=1;i<=NF;i+=10)a[++n]=substr($0,i,10)}END{m=1;for(i=1;i<n;i++){if(i%6==1){printf m"\t";m+=60}if(i%6)printf a[i]"\t";else print a[i]}print a[n]}' i
  5. 1       TINHTFGNPV      IPFKDGIYFA      ATEKSNVVRG      WVFGSTMNNK      SQSVIIINNS      TNVVIRACNF
  6. 61      ELCDNPFFAV      SKPMGTQTHT      MIFDNAFNCT      FEYISDAFSL      DVSEKSGNFK      HLREFVFKNK
  7. 121     DGFLYVYKGY      QPIDVVRDLP
  8. [root@localhost ~]#
复制代码

论坛徽章:
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
10 [报告]
发表于 2013-10-22 16:35 |只看该作者
回复 1# huang6894
  1. awk -F '' '{for(i=1;i<=length($0);i+=10){++n;s=s?s"\t"substr($0,i,10):substr($0,i,10);if(n==6){print (NR-1)*60+1"\t"s;s=n=""}}}END{if(s)print NR*60+1"\t"s}' file
复制代码

论坛徽章:
7
亥猪
日期:2013-10-10 17:00:29辰龙
日期:2013-10-12 16:23:19卯兔
日期:2013-11-18 17:01:27金牛座
日期:2014-09-09 10:17:052015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之柏太阳神
日期:2015-09-25 13:56:42数据库技术版块每日发帖之星
日期:2016-08-06 06:20:00
9 [报告]
发表于 2013-10-22 16:09 |只看该作者
回复 8# Shell_HAT
是的;但代码还是可以修改,
开始本来是没打算贴出来的;因为这代码没什么可行性!


   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
8 [报告]
发表于 2013-10-22 15:58 |只看该作者
回复 4# li0924


    三行文本的时候会出问题

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
7 [报告]
发表于 2013-10-22 15:47 |只看该作者
回复 6# expert1


    o(︶︿︶)o 唉~初学者。什么都不会啊~

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
6 [报告]
发表于 2013-10-22 15:44 |只看该作者
回复 1# huang6894


    fold
楼主学生物的?我blog有个差不多一样的问题。

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
5 [报告]
发表于 2013-10-22 15:35 |只看该作者
回复 4# li0924


    膜拜ing~

论坛徽章:
7
亥猪
日期:2013-10-10 17:00:29辰龙
日期:2013-10-12 16:23:19卯兔
日期:2013-11-18 17:01:27金牛座
日期:2014-09-09 10:17:052015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之柏太阳神
日期:2015-09-25 13:56:42数据库技术版块每日发帖之星
日期:2016-08-06 06:20:00
4 [报告]
发表于 2013-10-22 15:32 |只看该作者
看到楼上的代码这么简洁!佩服啊!我也附上我复杂的代码
  1. awk '{getline d;str=$0 d;for(i=10;i<=length(str);i=i+10)printf("%d\t%10s\n",i-9,substr(str,i-10,10));}' infile|awk '{s=$1%60==1?"\n"$1FS$2:sFS"\t"$2;printf s}'
复制代码

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
3 [报告]
发表于 2013-10-22 15:30 |只看该作者
回复 2# 关阴月飞


    谢谢关哥
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP