Board logo

标题: [文本处理] 批处理删除以指定字符串开头的行或以指定字符串结尾的行 [打印本页]

作者: laboo    时间: 2012-2-10 13:16     标题: 批处理删除以指定字符串开头的行或以指定字符串结尾的行

本帖最后由 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

应该是这样。
作者: ivor    时间: 2012-2-10 13:53

本帖最后由 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
复制代码

作者: laboo    时间: 2012-2-10 14:54

本帖最后由 laboo 于 2012-2-10 15:03 编辑

ivor 兄弟,运行后,不行

或者看.cn麻烦,可以把.cn呼略掉有没办法?
作者: ivor    时间: 2012-2-10 15:52

本帖最后由 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
复制代码

作者: lvsehuaxue    时间: 2012-2-10 16:56

  1. @echo off
  2. (findstr /v "^ao ^ban ve.cn$ lo.cn$" a.txt)>$
  3. move $ a.txt
复制代码

作者: ivor    时间: 2012-2-10 17:01

lvsehuaxue 发表于 2012-2-10 16:56



    学习了,正则表达式
作者: laboo    时间: 2012-2-10 17:21

多谢楼上两位兄弟,可以用,嘿嘿
作者: find    时间: 2012-2-10 23:38

回复 6# ivor


http://www.bathome.net/thread-24-1-1.html




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2