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

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

[复制链接]
发表于 2022-9-9 10:54:00 | 显示全部楼层 |阅读模式
  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个字符的内容直接全部删除,并导出到新文本
发表于 2022-9-9 11:25:35 | 显示全部楼层
楼主展示的数据好像都不长(好像不超过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
复制代码
发表于 2022-9-9 11:40:50 | 显示全部楼层
不用那么复杂:
  1. findstr ..... 1.txt>2.txt
复制代码
发表于 2022-9-9 11:44:33 | 显示全部楼层
如何不介意第3方工具,可用sed ( http://bcn.bathome.net/tool/4.8/sed.exe )就更简单:

  1. sed -n "/^.\{5\}/p" <test.txt>test_out.txt
复制代码
发表于 2022-9-9 11:49:49 | 显示全部楼层
回复 3# qixiaobin0715


    findstr的应用太妙了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 16:39 , Processed in 0.017184 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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