Board logo

标题: [已解决]怎样用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

  1. findstr /vx "[0-9][0-9][0-9][0-9][0-9]" a.txt >b.txt
复制代码

作者: forfiles    时间: 2012-6-27 02:04

  1. 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

b.txt内容换行不要换行符,要标准的回车符

不知道你这句话是什么意思,能否把你的a.txt和希望得到的b.txt压缩一下传上来我看看?
作者: ufwuwlgah    时间: 2012-6-28 01:36

如果你的sed命令,把要处理的文件a.txt写入b.txt,或许支持上 G 的文件
对于换行符,我可以用这条命令转换回标准的回车符来解决
  1. sed -i "s/$/\r/" a.txt
复制代码

作者: 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的文件很轻松,也许是你的版本太低吧。
  1. 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://www.bathome.net/) Powered by Discuz! 7.2