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

[文本处理] 批处理删除以指定字符串开头的行或以指定字符串结尾的行

[复制链接]
发表于 2012-2-10 13:16:59 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-8-11 20:21 编辑

1.批处理删除含ao ban开头的行
2批处理删除含ve lo结尾的行(不含.cn)
希望是分别两个语句。数据有400多k,3万多条

annun.cn
aolve.cn
aopian.cn
aorua.cn
aotei.cn
azhua.cn
bailo.cn
bairua.cn
balve.cn
banlve.cn
bannve.cn

处理后:
annun.cn
azhua.cn
bairua.cn

应该是这样。
发表于 2012-2-10 13:53:38 | 显示全部楼层
本帖最后由 ivor 于 2012-2-10 16:17 编辑

运行环境:假定你的每行后缀是.cn
支持同时指定多个关键字,需要以(空格、逗号或者等号)分开

  1. @echo off

  2. set /p beginword=请输入开头的关键字
  3. set /p endword=请输入结束的关键字
  4. set /p file=请输入文件名

  5. if defined beginword call :Begin
  6. if defined endword call :End
  7. pause & exit
  8. :Begin
  9. for %%a in (%beginword%) do (
  10.         findstr /v "^%%a" %file%>Temp
  11.         move Temp %file%
  12. )

  13. goto :EOF
  14. :End
  15. for %%a in (%endword%) do (
  16.         findstr /v "%%a.cn$" %file% >Temp
  17.         move Temp %file%
  18. )
  19. goto :EOF
复制代码
 楼主| 发表于 2012-2-10 14:54:05 | 显示全部楼层
本帖最后由 laboo 于 2012-2-10 15:03 编辑

ivor 兄弟,运行后,不行

或者看.cn麻烦,可以把.cn呼略掉有没办法?
发表于 2012-2-10 15:52:25 | 显示全部楼层
本帖最后由 ivor 于 2012-2-10 16:45 编辑

可以啊,但是用for遍历肯定性能下降很多,一会修改一下

===============================

效率比较低
  1. @echo off

  2. set /p beginword=请输入开头的关键字
  3. set /p endword=请输入结束的关键字
  4. set /p file=请输入文件名

  5. if defined beginword call :Begin
  6. if defined endword call :End
  7. pause & exit
  8. :Begin
  9. for %%a in (%beginword%) do (
  10.         findstr /v "^%%a" %file%>Temp
  11.         move Temp %file%
  12. )

  13. goto :EOF
  14. :End
  15. for %%a in (%endword%) do (
  16.         for /f %%b in (%file%) do (
  17.                 echo %%~nb | findstr /v "%%a\>" && echo %%b>>Temp
  18.         )
  19.         move Temp %file%
  20. )
  21. goto :EOF
复制代码
发表于 2012-2-10 16:56:32 | 显示全部楼层

  1. @echo off
  2. (findstr /v "^ao ^ban ve.cn$ lo.cn$" a.txt)>$
  3. move $ a.txt
复制代码
发表于 2012-2-10 17:01:36 | 显示全部楼层
lvsehuaxue 发表于 2012-2-10 16:56



    学习了,正则表达式
 楼主| 发表于 2012-2-10 17:21:25 | 显示全部楼层
多谢楼上两位兄弟,可以用,嘿嘿
发表于 2012-2-10 23:38:04 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 07:26 , Processed in 0.032152 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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