标题: [文本处理] [已解决]如何提取一个txt文本内重复出现次数等于指定数目的行内容 [打印本页]
作者: ysrr2011 时间: 2014-7-23 19:49 标题: [已解决]如何提取一个txt文本内重复出现次数等于指定数目的行内容
比如1个txt文本1lh.txt,内容为
111
113
131
118
311
313
331
333
116
118
.
.
.
897
958
994
欲批量提取该文本中出现次数为8-11的数据,并写入新文件1lh8-11.txt
作者: CrLf 时间: 2014-7-23 20:19
本帖最后由 CrLf 于 2014-7-24 00:12 编辑
- @echo off
- cd /d c:\文件夹1
- for /f "delims=" %%a in ('dir /b /a-d *.txt') do call :处理 "%%a">"文件夹2\%%~na0-3%%~xa"
- pause&exit
-
- :处理
- setlocal
- for /f "delims=" %%a in (%~snx1) do set /a #%%a#+=1
- for /f "delims=#" %%a in ('set #^|findstr "=[0-3]$"') do echo %%a
复制代码
作者: weichenxiehou 时间: 2014-7-23 21:43
回复 2# CrLf
是不是该set #|findstr "=[0-3]$"呢?
作者: ysrr2011 时间: 2014-7-23 21:56
谢谢,不过运算出的结果不对,比如原文件里011有11个,运算出来的结果仍有011,附上原文件的统计结果,请帮忙再改改好吗?
作者: ysrr2011 时间: 2014-7-23 22:05
谢谢3楼,解决问题了,确实要加$,也谢谢2楼。
作者: ysrr2011 时间: 2014-7-23 22:49
如果对一个文件夹1里的所有文件1lh.txt,1lc.txt....都进行同样处理,结果写入文件夹2的1lh0-3.txt,1lc.0-3.txt...应该如何编程?
作者: CrLf 时间: 2014-7-23 23:11
回复 6# ysrr2011
已修改
作者: ysrr2011 时间: 2014-7-23 23:49
试了下,只有第一个文件结果是正确的。
作者: CrLf 时间: 2014-7-24 00:12
回复 8# ysrr2011
已修改
作者: ysrr2011 时间: 2014-7-24 10:13
回复 9# CrLf
感谢CrLf,提取出现次数9以下的数据完美运行,但如果要提取出现次数>9,比如8-11次的数据就不对了。
作者: apang 时间: 2014-7-24 13:51
回复 10# ysrr2011
findstr "=[89]$ =1[01]$"
作者: CrLf 时间: 2014-7-24 16:27
powershell 也可以这样:- foreach($file in (get-childitem *.txt)){
- get-content $file|group-object|where-object{$_.count -ge 8 -or $_.count -le 11}|select-object name >($file.name + '8_11' + $file.extension)
- }
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |