标题: [文本处理] 批处理如何删除字符串长度小于指定数值的行并导出? [打印本页]
作者: Rasm 时间: 2022-9-9 10:54 标题: 批处理如何删除字符串长度小于指定数值的行并导出?
- 10Ver
- 112233..
- 11223344Cc
- 1142751081Zj
- 11我开你
- 123321Aa@
- 1234-
- 1234123123A
- 123456789Www
- 123456Dc
- 12345Dgsg
- 1237Yx
- 123Bingo
- 123_Jkl
复制代码
想把文本中,长度小于 5个字符的内容直接全部删除,并导出到新文本
作者: hfxiang 时间: 2022-9-9 11:25
楼主展示的数据好像都不长(好像不超过15个字符)
试试以下代码:- @echo off
- setlocal enableDelayedExpansion
- set "_strlen=set $=^!#1^!&set $=^!$^!fedcba9876543210&set/a##=0x^!$:~15,1^!"
- for /f %%a in (test.txt) do (
- set #1=%%a
- (%_strlen%)
- if !##! GEQ 5 echo;%%a
- )
- endlocal
复制代码
作者: qixiaobin0715 时间: 2022-9-9 11:40
不用那么复杂:- findstr ..... 1.txt>2.txt
复制代码
作者: hfxiang 时间: 2022-9-9 11:44
如何不介意第3方工具,可用sed ( http://bcn.bathome.net/tool/4.8/sed.exe )就更简单:- sed -n "/^.\{5\}/p" <test.txt>test_out.txt
复制代码
作者: hfxiang 时间: 2022-9-9 11:49
回复 3# qixiaobin0715
findstr的应用太妙了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |