找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 77614|回复: 15

[文本处理] [已解决]批处理删除某字符所在的行

[复制链接]
发表于 2011-6-25 18:02:43 | 显示全部楼层 |阅读模式
afd
1231231231
asdfaf
123
1
23
1
fafa
afaf
fafaf

我要删除 存在 数字"2" 的那行,利用批处理

我自己的批处理代码是这样写的:
  1. @echo off
  2. for /f "tokens=*" %%a in (input.txt) do @echo %%a|find /v /i "2">>output.txt
  3. pause
复制代码
可惜速度速度太慢,处理500K的文本,需要将近40分钟

CPU达到80%
不知道有没有人能改善下这代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-6-25 18:04:23 | 显示全部楼层
  1. findstr /v /c:"2" input.txt >output.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Rasm + 1 代码简单干练

查看全部评分

发表于 2011-6-25 18:10:32 | 显示全部楼层
本帖最后由 common 于 2011-6-28 13:24 编辑

  1. @echo off
  2. for /f "tokens=*" %%a in (input.txt) do (
  3.    if "%%a neq *2*" echo %%a>>output.txt
  4. pause
复制代码

评分

参与人数 1PB -2 收起 理由
Batcher -2 请编辑自己的帖子,把代码放到code标签里面 ...

查看全部评分

 楼主| 发表于 2011-6-25 18:27:51 | 显示全部楼层
2# tmplinshi


谢谢!
 楼主| 发表于 2011-6-25 18:29:29 | 显示全部楼层
3# common


直接粘贴你的代码,不可用
发表于 2011-6-25 18:38:41 | 显示全部楼层
  1. sed "/2/d" a.txt >b.txt
复制代码
  1. gawk "!/2/" a.txt >b.txt
复制代码
http://bbs.bathome.net/thread-1114-1-1.html
 楼主| 发表于 2011-6-25 18:41:53 | 显示全部楼层
6# Batcher


你好,我自己写的代码,效果是达到了
但是处理速度太慢了,500K的文本,我机子要花40分钟


我是cpu T6600,GT240的显卡
发表于 2011-6-25 18:43:23 | 显示全部楼层
7# Rasm


2楼和6楼的代码分别需要多长时间?
 楼主| 发表于 2011-6-25 19:05:09 | 显示全部楼层
8# Batcher


我的代码太落后了

2楼的1秒


够快

6楼的代码未测试

感谢!问题解决了

等下自己再参考下代码参数

在此感谢楼上几位热心帮助的朋友
 楼主| 发表于 2011-6-25 19:07:54 | 显示全部楼层
8# Batcher


在此请教一个问题

如果想删除多个字符,该怎么定义呢


如果我想删除存在/xinwen/,/ditu/,/news/等多个所在行的内容
发表于 2011-6-25 19:31:36 | 显示全部楼层
  1. findstr /v /c:"/xinwen/" /c:"/ditu/" /c:"/news/" input.txt >output.txt
复制代码

评分

参与人数 2技术 +2 收起 理由
Hello123World + 1 findstr!findstr!
Rasm + 1 谢谢!

查看全部评分

发表于 2011-6-25 19:40:34 | 显示全部楼层
  1. sed "/xinwen\|ditu\|news/d" a.txt >b.txt
复制代码
发表于 2011-6-25 19:42:27 | 显示全部楼层
  1. findstr /v "xinwen ditu news" a.txt >b.txt
复制代码
发表于 2011-7-1 13:03:51 | 显示全部楼层
5# Rasm
common的代码那个左括号是错误的,还少了一个右括号吧
 楼主| 发表于 2016-11-20 13:36:41 | 显示全部楼层
回复 13# Batcher


    如果有100个字符要处理,请问该怎么写呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 23:55 , Processed in 0.014102 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表