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

[文本处理] 批处理如何删除字符串长度小于指定数值的行并导出?

  1. 10Ver
  2. 112233..
  3. 11223344Cc
  4. 1142751081Zj
  5. 11我开你
  6. 123321Aa@
  7. 1234-
  8. 1234123123A
  9. 123456789Www
  10. 123456Dc
  11. 12345Dgsg
  12. 1237Yx
  13. 123Bingo
  14. 123_Jkl
复制代码
想把文本中,长度小于 5个字符的内容直接全部删除,并导出到新文本

楼主展示的数据好像都不长(好像不超过15个字符)
试试以下代码:
  1. @echo off
  2. setlocal enableDelayedExpansion
  3. set "_strlen=set $=^!#1^!&set $=^!$^!fedcba9876543210&set/a##=0x^!$:~15,1^!"
  4. for /f %%a in (test.txt) do (
  5. set #1=%%a
  6. (%_strlen%)
  7. if !##! GEQ 5 echo;%%a
  8. )
  9. endlocal
复制代码

TOP

不用那么复杂:
  1. findstr ..... 1.txt>2.txt
复制代码

TOP

如何不介意第3方工具,可用sed ( http://bcn.bathome.net/tool/4.8/sed.exe )就更简单:
  1. sed -n "/^.\{5\}/p" <test.txt>test_out.txt
复制代码

TOP

回复 3# qixiaobin0715


    findstr的应用太妙了

TOP

返回列表