免费注册 查看新帖 |

Chinaunix

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

[文本处理] 懂.bat的大神进来帮帮我吧,实在是没招了,最后一招! [复制链接]

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-08-01 12:05 |只看该作者 |倒序浏览


今天我又重提超大文件去重的事

该论坛让我搜索烂了,尝试搜索各位大神的去重代码(只要我能发现的,都试验过)。

昨晚到今早用了大约6-7个小时运行,采用的是awk '!a[$0]++'  只处理了400多M,我看到结果后立马让我停止运行了

试了一下,这个代码也不理想,感觉内存全吃净了perl -ane 'print if(++$a{$_}==1)' (采用它主要想换个思路试试,也不理想)
(sort -u  简单说也不理想,详情不述)


不啰嗦了,简单说就剩下面最后一招没试验过,原因是我不会用这个代码

下面是一位大神的原话:
-------------------------------------------------------------
用python或者perl搞比较合理,其他shell会多次起新进程,会很慢

cat<<EOF>aa.sh
import time
print(time.strftime('readfile %H:%M:%S'))
raw_lines = file('urfile').readlines()
print(time.strftime('procdata %H:%M:%S'))
un_keys = set()
unlines = []
for l in raw_lines:
    if l in un_keys:
        continue
    un_keys.add(l)
    unlines.append(l)
print(time.strftime('writefile %H:%M:%S'))
file('urfile.out','w').writelines(unlines)
EOF
python aa.sh
--------------------------------------------------------------

今请好心的大神耽误你点时间,帮我指导、指导使用方法

用.bat的运行方法,把上面的代码给运行起来

1、在.sh里面都写进去哪些内容?看看我下面的在.sh里面写进去的错在哪里?

#!/bin/sh/cat<<EOF>1.sh
import time
print(time.strftime('readfile %H:%M:%S'))
raw_lines = file('urfile').readlines()
print(time.strftime('procdata %H:%M:%S'))
un_keys = set()
unlines = []
for l in raw_lines:
    if l in un_keys:
        continue
    un_keys.add(l)
    unlines.append(l)
print(time.strftime('writefile %H:%M:%S'))
file('urfile.out','w').writelines(unlines)
EOF
python 1.sh

2、在运行.bat时,要写进去哪些内容?看看我下面的在.bat里面写进去的(我只写主要的内容,其它的忽略)错在哪里?

sh 1.sh  8.txt>999.txt




感谢好心的大神,帮帮我吧,你不帮我,我实在是没招了。感谢感谢!


(因为按照代码大神说的原话,这段代码运行速度应该很快)




论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2016-08-01 12:12 |只看该作者
文件有多大?有试过分割成小文件去重,再合并去重吗?

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
3 [报告]
发表于 2016-08-01 12:24 |只看该作者
本帖最后由 bmne 于 2016-08-01 13:01 编辑

回复 2# Herowinter


大神好,如果有时间,请指导下运行.bat吧,太感谢了


本次这个不算大,没超过20GB。因我菜,不会代码全自动分割、去重、合并等等内容一次性运行脚本。如果换成手动操作太费时间了,所以,没切割


另外,不知道什么原因,本次文档,运行 代码 grep 时,提示有二进制数据,我加了个  grep -a  运行正常了。其实,在grep前,我已经把大文档用UE ' 另存为' 一遍了(已经另存为了,怎在以后运行grep的代码时,还会提示二进制呢?)。实在是搞不懂去重怎就这么慢,内存(8GB)全吃净几乎



   

论坛徽章:
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 [报告]
发表于 2016-08-01 14:44 |只看该作者
你之前就一直有大文件去重问题...
其实最简单的方法......就是直接解决问题就好了...
不要产生大文件,再去重(直接产生或处理不重复资料)

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
5 [报告]
发表于 2016-08-01 15:00 |只看该作者
回复 4# jason680

知道你大神厉害,也明白你懒得出手

麻烦你帮帮我一楼的问题吧,我知道我在有病乱求医,如果我求助的一楼的方法快,哪怕是5个小时处理完我都满意


辛苦下吧

   

论坛徽章:
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
6 [报告]
发表于 2016-08-01 15:10 |只看该作者
一楼问题......几月个前讨论过(不找了)...
重写一次
1.数据变小(分割文档)
2.内存变大
3.数据库
但你都不想做....无解

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
7 [报告]
发表于 2016-08-01 15:20 |只看该作者
回复 6# jason680


谢谢大神

又让你本来懒的写字又动起手来了,不好意思

但,相信我,我说的都是实话,没有一点添油加醋的成分。我认为没有必要,那样没意思。

   

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
8 [报告]
发表于 2016-08-01 15:24 |只看该作者


很奇怪

难道我一楼的代码问题无解?不是去重的代码?怎么没有大神回复一下啊?


论坛徽章:
9
操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-17 17:50:32操作系统版块每日发帖之星
日期:2016-08-01 06:20:0015-16赛季CBA联赛之广东
日期:2016-08-01 16:01:57操作系统版块每日发帖之星
日期:2016-08-04 06:20:00IT运维版块每日发帖之星
日期:2016-08-07 06:20:00操作系统版块每日发帖之星
日期:2016-08-07 06:20:0015-16赛季CBA联赛之福建
日期:2017-03-07 17:14:27
9 [报告]
发表于 2016-08-01 15:30 |只看该作者
这是用python写的 你装个python再运行。

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
10 [报告]
发表于 2016-08-01 15:33 |只看该作者
回复 9# Riet


谢谢大神回复

请问一下,我用.bat,按我一楼的办法实现不了?耽误你时间了





   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP