[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[已解决]怎样用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
游戏 游戏游戏
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

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

TOP

  1. sed -i "/^[0-9]\{5\}$/d" a.txt
复制代码
1

评分人数

TOP

本帖最后由 ufwuwlgah 于 2012-6-27 09:50 编辑

回复 2# terse


    你的达到了要求,就是不支持大文件处理,3楼的带有换行符,也不支持大文件处理
自己用UltraEdit正则手工处理算了

TOP

回复 4# ufwuwlgah


    请问你用的哪个版本的sed?

TOP

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

不知道你这句话是什么意思,能否把你的a.txt和希望得到的b.txt压缩一下传上来我看看?

TOP

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

TOP

本帖最后由 ufwuwlgah 于 2012-6-28 01:39 编辑

回复 6# forfiles
大哥,看下该怎么改才支持大文件,处理好的b.txt,换行符或标准的回车符都无所谓

TOP

回复 7# ufwuwlgah


你上传的附近我无法下载,就告诉我是哪个版本就行了
sed --version

顺带扫个盲:
那个不是所谓标准换行符,其实是一个回车加上一个换行,用十六进制编辑器打开就会看到它们对应的ASCII码:0D 0A
单独一个回车或者换行,在记事本里面就会引起混乱。

TOP

回复 8# ufwuwlgah


一般来说sed/gawk这些工具处理上G的文件很轻松,也许是你的版本太低吧。
  1. sed "/^[0-9]\{5\}$/d" a.txt >b.txt
复制代码

TOP

回复 10# forfiles

sed "/^[0-9]\{5\}$/d" a.txt >b.txt

还是处理不了,处理过的文件UltraEdit打开看了一下,里面还是很多纯5位数字的行

TOP

回复 11# ufwuwlgah


    换成4.2.1吧

TOP

本帖最后由 ufwuwlgah 于 2012-6-28 21:38 编辑

回复 12# forfiles


    你有4.2.1版本吗,上传上来给我,官网没找到这个版本

http://bathome.net/thread-16975-1-1.html

在这里找到了4.2.1版本,我去测试下

TOP

回复 12# forfiles

额,处理不了,还是老问题,算了,我用正则删除好了

TOP

回复 14# ufwuwlgah


    这个截图里面哪个是“纯5位数字的行”?

TOP

返回列表