标题: [文本处理] 【已解决】BAT:如何删除或保留指定字符数的行 [打印本页]
作者: 思想之翼 时间: 2023-10-10 07:46 标题: 【已解决】BAT:如何删除或保留指定字符数的行
本帖最后由 思想之翼 于 2023-10-10 09:36 编辑
d:\data\a.txt 每行数值以空格隔开:
123 258
001
999 888 777 666
555
333 779
【问题1】如何用BAT,删除只有1个数值的行?
结果为:
123 258
999 888 777 666
333 779
【问题2】如何用BAT,删除只有2个数值的行?
结果为:
001
999 888 777 666
555
【问题3】如何用BAT,删除只有1-2个数值的行?
结果为:
999 888 777 666
【问题4】如何用BAT,保留只有1个数值的行?
结果为:
001
555
【问题5】如何用BAT,保留只有2个数值的行?
结果为:
123 258
333 779
【问题6】如何用BAT,保留只有1-2个数值的行?
结果为:
123 258
001
555
333 779
作者: 77七 时间: 2023-10-10 08:48
- rem 【问题1】如何用BAT,删除只有1个数值的行?
- findstr /rvc:"^[0-9][0-9]* *$" a.txt >b.txt
-
- rem 【问题2】如何用BAT,删除只有2个数值的行?
- findstr /rvc:"^[0-9][0-9]* *[0-9][0-9]* *$" a.txt >b.txt
-
- rem 【问题3】如何用BAT,删除只有1-2个数值的行?
- findstr /rc:"^[0-9][0-9]* *[0-9][0-9]* *[0-9]" a.txt >b.txt
-
- rem 【问题4】如何用BAT,保留只有1个数值的行?
- findstr /rc:"^[0-9][0-9]* *$" a.txt >b.txt
-
- rem 【问题5】如何用BAT,保留只有2个数值的行?
- findstr /rc:"^[0-9][0-9]* *[0-9][0-9]* *$" a.txt >b.txt
-
- rem 【问题6】如何用BAT,保留只有1-2个数值的行?
- findstr /rvc:"^[0-9][0-9]* *[0-9][0-9]* *[0-9]" a.txt >b.txt
复制代码
作者: hfxiang 时间: 2023-10-10 08:52
回复 1# 思想之翼
针对楼主的样本,用gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe )实现如下- 【问题 1】如何用 BAT,删除只有 1 个数值的行?
- gawk "NF>1" a.txt>b.txt
- 结果为:
- 123 258
- 999 888 777 666
- 333 779
-
- 【问题 2】如何用 BAT,删除只有 2 个数值的行?
- awk "NF!=2" a.txt>b.txt
- 结果为:
- 001
- 999 888 777 666
- 555
-
- 【问题 3】如何用 BAT,删除只有 1-2 个数值的行?
- gawk "NF>2" a.txt>b.txt
- 结果为:
- 999 888 777 666
-
- 【问题 4】如何用 BAT,保留只有 1 个数值的行?
- gawk "NF==1" a.txt>b.txt
- 结果为:
- 001
- 555
-
- 【问题 5】如何用 BAT,保留只有 2 个数值的行?
- gawk "NF==2" a.txt>b.txt
- 结果为:
- 123 258
- 333 779
-
- 【问题 6】如何用 BAT,保留只有 1-2 个数值的行?
- gawk "NF<=2" a.txt>b.txt
- 结果为:
- 123 258
- 001
- 555
- 333 779
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |