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

[文本处理] 【已解决】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

  1. rem 【问题1】如何用BAT,删除只有1个数值的行?
  2. findstr /rvc:"^[0-9][0-9]* *$" a.txt >b.txt
  3. rem 【问题2】如何用BAT,删除只有2个数值的行?
  4. findstr /rvc:"^[0-9][0-9]*  *[0-9][0-9]* *$" a.txt >b.txt
  5. rem 【问题3】如何用BAT,删除只有1-2个数值的行?
  6. findstr /rc:"^[0-9][0-9]*  *[0-9][0-9]*  *[0-9]" a.txt >b.txt
  7. rem 【问题4】如何用BAT,保留只有1个数值的行?
  8. findstr /rc:"^[0-9][0-9]* *$" a.txt >b.txt
  9. rem 【问题5】如何用BAT,保留只有2个数值的行?
  10. findstr /rc:"^[0-9][0-9]*  *[0-9][0-9]* *$" a.txt >b.txt
  11. rem 【问题6】如何用BAT,保留只有1-2个数值的行?
  12. findstr /rvc:"^[0-9][0-9]*  *[0-9][0-9]*  *[0-9]" a.txt >b.txt
复制代码
1

评分人数

bat小白,请多指教!谢谢!

TOP

回复 1# 思想之翼

针对楼主的样本,用gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe )实现如下
  1. 【问题 1】如何用 BAT,删除只有 1 个数值的行?
  2. gawk "NF>1" a.txt>b.txt
  3. 结果为:
  4. 123 258
  5. 999 888 777 666
  6. 333 779
  7. 【问题 2】如何用 BAT,删除只有 2 个数值的行?
  8. awk "NF!=2" a.txt>b.txt
  9. 结果为:
  10. 001
  11. 999 888 777 666
  12. 555
  13. 【问题 3】如何用 BAT,删除只有 1-2 个数值的行?
  14. gawk "NF>2" a.txt>b.txt
  15. 结果为:
  16. 999 888 777 666
  17. 【问题 4】如何用 BAT,保留只有 1 个数值的行?
  18. gawk "NF==1" a.txt>b.txt
  19. 结果为:
  20. 001
  21. 555
  22. 【问题 5】如何用 BAT,保留只有 2 个数值的行?
  23. gawk "NF==2" a.txt>b.txt
  24. 结果为:
  25. 123 258
  26. 333 779
  27. 【问题 6】如何用 BAT,保留只有 1-2 个数值的行?
  28. gawk "NF<=2" a.txt>b.txt
  29. 结果为:
  30. 123 258
  31. 001
  32. 555
  33. 333 779
复制代码
1

评分人数

TOP

返回列表