免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ywmkelly
打印 上一主题 下一主题

[文本处理] 还是文本处理,估计要awk。请大神分享经验 [复制链接]

论坛徽章:
5
天秤座
日期:2015-04-08 20:28:42辰龙
日期:2015-04-08 20:35:06寅虎
日期:2015-04-08 20:35:56子鼠
日期:2015-04-08 20:36:192015亚冠之迪拜阿赫利
日期:2015-05-13 16:52:25
11 [报告]
发表于 2015-04-13 16:45 |只看该作者
回复 10# ly5066113


    就以5位为例好了

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
12 [报告]
发表于 2015-04-13 16:59 |只看该作者
回复 11# ywmkelly


try:
  1. awk -vl=5 '!a[substr($0,length-l+1)]++' file
复制代码

论坛徽章:
5
天秤座
日期:2015-04-08 20:28:42辰龙
日期:2015-04-08 20:35:06寅虎
日期:2015-04-08 20:35:56子鼠
日期:2015-04-08 20:36:192015亚冠之迪拜阿赫利
日期:2015-05-13 16:52:25
13 [报告]
发表于 2015-04-13 17:01 |只看该作者
回复 12# ly5066113


    同上面那位一样,只能处理一行。
[root@localhost ~]# cat -n abc
     1  awfjlaa
     2  faw
     3  589-1/2345678901
     4  179837-2-42-78901
     5  123546
     6  654321
     7  156888651/2349990-65488
     8  147987-280532465488
[root@localhost ~]# awk -vl=5 '!a[substr($0,length-l+1)]++' abc
awfjlaa
faw
589-1/2345678901
179837-2-42-78901
123546
654321
156888651/2349990-65488

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
14 [报告]
发表于 2015-04-13 17:06 |只看该作者
回复 13# ywmkelly


$ cat -n file
     1  awfjlaa
     2  faw
     3  589-1/2345678901
     4  179837-2-42-78901
     5  123546
     6  654321
     7  156888651/234999065488
     8  147987-280532465488
$ awk -vl=5 '!a[substr($0,length-l+1)]++' file
awfjlaa
faw
589-1/2345678901
123546
654321
156888651/234999065488

你的文件结尾有空白?$0改成$1
awk -vl=5 '!a[substr($1,length($1)-l+1)]++' file

论坛徽章:
5
天秤座
日期:2015-04-08 20:28:42辰龙
日期:2015-04-08 20:35:06寅虎
日期:2015-04-08 20:35:56子鼠
日期:2015-04-08 20:36:192015亚冠之迪拜阿赫利
日期:2015-05-13 16:52:25
15 [报告]
发表于 2015-04-13 17:23 |只看该作者
回复 14# ly5066113
  1. [root@localhost ~]# cat abc
  2. awfjlaa
  3. faw
  4. 589-1/2345678901
  5. 179837-2-42-78901
  6. 123546
  7. 654321
  8. 156888651/2349990-65488
  9. 147987-280532465488
  10. [root@localhost ~]# awk -vl=5 '!a[substr($1,length-l+1)]++' abc
  11. awfjlaa
  12. faw
  13. 589-1/2345678901
  14. 179837-2-42-78901
  15. 123546
  16. 654321
  17. 156888651/2349990-65488
  18. [root@localhost ~]#
复制代码
这是怎么回事?

论坛徽章:
5
天秤座
日期:2015-04-08 20:28:42辰龙
日期:2015-04-08 20:35:06寅虎
日期:2015-04-08 20:35:56子鼠
日期:2015-04-08 20:36:192015亚冠之迪拜阿赫利
日期:2015-05-13 16:52:25
16 [报告]
发表于 2015-04-13 17:25 |只看该作者
回复 14# ly5066113


    好吧,发现那行末尾有个空格。汗。

论坛徽章:
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
17 [报告]
发表于 2015-04-13 18:08 |只看该作者
回复 16# ywmkelly

$ cat -A FILE
     1  awfjlaa$
     2  faw$
     3  589-1/2345678901 $
     4  179837-2-42-78901$
     5  123546$
     6  654321$
     7  156888651/2349990-65488$
     8  147987-280532465488$

$ awk -vFS='' '{sub("[\t ]+$","");P=(N==$NF)?0:1;N=$NF}P' FILE
     1  awfjlaa
     2  faw
     3  589-1/2345678901
     5  123546
     6  654321
     7  156888651/2349990-65488

   

论坛徽章:
5
天秤座
日期:2015-04-08 20:28:42辰龙
日期:2015-04-08 20:35:06寅虎
日期:2015-04-08 20:35:56子鼠
日期:2015-04-08 20:36:192015亚冠之迪拜阿赫利
日期:2015-05-13 16:52:25
18 [报告]
发表于 2015-04-13 21:07 |只看该作者
回复 17# jason680


    [root@localhost ~]# cat -A file
21$
451$
23948$
888$
3448948$
3824982975888$
[root@localhost ~]# awk -vFS='' '{sub("[\t ]+$",""=(N==$NF)?0:1;N=$NF}P' file
21
23948

大神,你这样匹配文档都要删完了

论坛徽章:
0
19 [报告]
发表于 2015-04-14 09:27 |只看该作者
!!!!你没有说明你的数据格式
1. 你说的行尾关键字,你好像没有说你的关键字长度,如果我自行取为1的话,你的数据处理出来就最多十行了吧
2.  看你处理好像只出了长度很长的数据,短的要考虑么

如果短的不考虑,长度为5的话就简单了吧

if len(line)<10
   newfile.write(line)
else
   keywords=linelast5words()
   if  (check keyworks in dict)
   else
         add keysworks in dict
         newfile.write(line)



回复 1# ywmkelly


   

论坛徽章:
5
天秤座
日期:2015-04-08 20:28:42辰龙
日期:2015-04-08 20:35:06寅虎
日期:2015-04-08 20:35:56子鼠
日期:2015-04-08 20:36:192015亚冠之迪拜阿赫利
日期:2015-05-13 16:52:25
20 [报告]
发表于 2015-04-14 09:57 |只看该作者
回复 19# KoomIer


    请问这个是shell脚本么,还是其他语言?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP