标题: [已解决]怎样用sed删除纯数字5位的行? [打印本页]
作者: ufwuwlgah 时间: 2012-6-27 00:25 标题: [已解决]怎样用sed删除纯数字5位的行?
本帖最后由 ufwuwlgah 于 2012-6-29 22:15 编辑
怎么用sed删除 纯数字5位的行,文件2G大,用sed命令处理好的b.txt内容换行不要换行符,要标准的回车符
下面的朋友写的批处理都可以处理大文件,我真SB,要处理的大文件竟然给自己打出了5,应该是8的
a.txt内容:
RRRRRRR
655441111
12345
56321
游戏 11111
123365411555454
/?@#$%^&
vv 10000
游戏 游戏游戏
得到新b.txt内容
RRRRRRR
655441111
游戏 11111
123365411555454
/?@#$%^&
vv 10000
游戏 游戏游戏
作者: terse 时间: 2012-6-27 00:34
- findstr /vx "[0-9][0-9][0-9][0-9][0-9]" a.txt >b.txt
复制代码
作者: forfiles 时间: 2012-6-27 02:04
- sed -i "/^[0-9]\{5\}$/d" a.txt
复制代码
作者: ufwuwlgah 时间: 2012-6-27 08:35
本帖最后由 ufwuwlgah 于 2012-6-27 09:50 编辑
回复 2# terse
你的达到了要求,就是不支持大文件处理,3楼的带有换行符,也不支持大文件处理
自己用UltraEdit正则手工处理算了
作者: forfiles 时间: 2012-6-27 13:55
回复 4# ufwuwlgah
请问你用的哪个版本的sed?
作者: forfiles 时间: 2012-6-27 13:57
不知道你这句话是什么意思,能否把你的a.txt和希望得到的b.txt压缩一下传上来我看看?
作者: ufwuwlgah 时间: 2012-6-28 01:36
如果你的sed命令,把要处理的文件a.txt写入b.txt,或许支持上 G 的文件
对于换行符,我可以用这条命令转换回标准的回车符来解决复制代码
作者: ufwuwlgah 时间: 2012-6-28 01:37
本帖最后由 ufwuwlgah 于 2012-6-28 01:39 编辑
回复 6# forfiles
大哥,看下该怎么改才支持大文件,处理好的b.txt,换行符或标准的回车符都无所谓
作者: forfiles 时间: 2012-6-28 03:35
回复 7# ufwuwlgah
你上传的附近我无法下载,就告诉我是哪个版本就行了
sed --version
顺带扫个盲:
那个不是所谓标准换行符,其实是一个回车加上一个换行,用十六进制编辑器打开就会看到它们对应的ASCII码:0D 0A
单独一个回车或者换行,在记事本里面就会引起混乱。
作者: forfiles 时间: 2012-6-28 03:38
回复 8# ufwuwlgah
一般来说sed/gawk这些工具处理上G的文件很轻松,也许是你的版本太低吧。- sed "/^[0-9]\{5\}$/d" a.txt >b.txt
复制代码
作者: ufwuwlgah 时间: 2012-6-28 21:05
回复 10# forfiles
sed "/^[0-9]\{5\}$/d" a.txt >b.txt
还是处理不了,处理过的文件UltraEdit打开看了一下,里面还是很多纯5位数字的行
作者: forfiles 时间: 2012-6-28 21:08
回复 11# ufwuwlgah
换成4.2.1吧
作者: ufwuwlgah 时间: 2012-6-28 21:27
本帖最后由 ufwuwlgah 于 2012-6-28 21:38 编辑
回复 12# forfiles
你有4.2.1版本吗,上传上来给我,官网没找到这个版本
http://bathome.net/thread-16975-1-1.html
在这里找到了4.2.1版本,我去测试下
作者: ufwuwlgah 时间: 2012-6-28 22:04
回复 12# forfiles
额,处理不了,还是老问题,算了,我用正则删除好了
作者: forfiles 时间: 2012-6-28 23:46
回复 14# ufwuwlgah
这个截图里面哪个是“纯5位数字的行”?
作者: ufwuwlgah 时间: 2012-6-29 22:14
回复 15# forfiles
晕了,我发现自己干了件特 S B 的事,要删除的是8位数的行,我擦,竟然打出了5,刚才重新测试了你们写的批处理,全部都可以处理大文件
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |