Board logo

标题: [文本处理] 批处理如何排除(删除)字符串长度(字符个数)小于指定数值的行? [打印本页]

作者: Rasm    时间: 2016-3-26 16:54     标题: 批处理如何排除(删除)字符串长度(字符个数)小于指定数值的行?

  1. zhenxiong
  2. zhenpin
  3. zhenpacky
  4. zhenniuniu
  5. zhenniua
  6. zhenlk
  7. zhenhuayanan
  8. 蛋蜜汁
  9. 蛋蛋唱唱
  10. 弹棉花花
  11. 淡笑拈花
  12. 淡若星辰
  13. 淡秋
  14. 淡淡的风过
  15. 但是功夫
  16. 单行鹄
  17. 单身小逗比
  18. 丹彤
  19. 代号秒杀
复制代码
想把文本中,长度小于 5个字符的内容直接全部过滤掉,请问该如何实现呢?
作者: codegay    时间: 2016-3-26 17:30

本帖最后由 codegay 于 2016-3-26 18:38 编辑

findstr /rc:"......*"
对中文无效.一个中文需要两个点.
作者: pcl_test    时间: 2016-3-26 18:29

  1. //&cls&cscript -nologo -e:jscript "%~f0"<"文本.txt"&pause&exit
  2. while (!WScript.StdIn.AtEndOfStream) {
  3.     var str = WScript.StdIn.ReadLine();
  4.     if(!/^\s*$/.test(str)&&str.length>=5)WScript.StdOut.WriteLine(str);
  5. }
复制代码

作者: happy886rr    时间: 2016-3-26 18:54

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('type test.txt') do (
  3. set "str=%%a"
  4. if not "!str:~4,1!"=="" (echo %%a)
  5. )
  6. pause>nul
复制代码
回复 1# Rasm
作者: CrLf    时间: 2016-3-26 23:48

  1. @mshta http://bathome.net/s/hta/ "type('test.txt').split(/\r\n/).grep(/^.{5,}$/).join('\r\n')" >new.txt
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2