标题: [文本处理] 批处理如何统计特定行的行数? [打印本页]
作者: 雷神WUWU 时间: 2016-7-12 20:08 标题: 批处理如何统计特定行的行数?
附件文件内容中“DESCRIPTION=”下面“DATA0=762.2642,1636.842_764.2941,1638.931_0”等这样的比较长的行是需要统计计数的,想要得到一个文本中类似这样的长行到底有多少行,如果文件中没有这样的长行就计为0.还有因为[B|DOT]或者[W|DOT]或[G25|DOT]或[G50|DOT] “DESCRIPTION=”下面的长行数值坐标总是一样的,一般是4倍关系,看这个能否用得到。
作者: pcl_test 时间: 2016-7-12 20:25
- @echo off
- set n=0
- for /f %%a in ('findstr /b "DATA[0-9][0-9]*=" "T566U161BC08.txt"') do set /a n+=1
- echo;%n%
- pause
复制代码
作者: 雷神WUWU 时间: 2016-7-12 20:56
回复 2# pcl_test
能不能给个通用的啊?文件不止一个,有的都没有“DATA0=762.2642,1636.842_764.2941,1638.931_0”那样的长行
作者: gawk 时间: 2016-7-12 22:06
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
- set n=0
- for /f %%j in ('type "%%i" ^| findstr /b "DATA[0-9][0-9]*="') do (
- set /a n+=1
- )
- echo %%i: !!n!
- )
- pause
复制代码
作者: gawk 时间: 2016-7-12 22:21
回复 1# 雷神WUWU
有问题请直接在论坛发帖讨论吧,不用给我发私信,我看到帖子一样会回复的,谢谢。
作者: 雷神WUWU 时间: 2016-7-12 22:26
回复 5# gawk
好吧,因为太菜,就想找几个热心人帮下忙,呵呵...
作者: gawk 时间: 2016-7-12 22:31
回复 6# 雷神WUWU
貌似论坛没有规定太菜的人不允许发帖啊
我应该可以算得上热心人之一,能帮上的一定帮,只是不习惯私信讨论技术问题。
作者: 雷神WUWU 时间: 2016-7-12 22:40
本帖最后由 雷神WUWU 于 2016-7-12 23:55 编辑
回复 7# gawk
刚网上查资料进到这个网站,不是太熟悉。
@echo off&
for /f "delims=" %%a in ('dir /a-d/b *.txt') do (
setlocal enabledelayedexpansion
for /f "delims=" %%b in ('type "%%a"') do (
set /a num+=1
set "str=%%b"
if !num! geq 1 (
if "!str:~40!" neq "" set /a count+=1
)
)
if defined keys echo;%%~na,!count!>>"%~dp0Result.csv"
endlocal
)
pause
我弄了很久这个,那个0就是弄不好,要么全被我弄成0了
作者: 雷神WUWU 时间: 2016-7-12 22:47
回复 7# gawk
补充一下,你的代码不错。就是我一直纠结我先前弄得一个方案的代码,所以请教下
作者: GNU 时间: 2016-7-13 08:51
回复 8# 雷神WUWU
这个代码不像是解决顶楼的问题,你发过其它帖子是吗?
链接发出来吧,我过去看看。
作者: 雷神WUWU 时间: 2016-7-13 19:57
回复 10# GNU
我也是论坛到处查查看看,然后简单理解下,凑起来的,没啥基础,感觉能实现预期的一部分,就贴出来请教了,毕竟我观察了下文本存在长短不一的情况,可以从这方面下手试试,虽然这个方案针对预期可能并不是最优的,但条条大路通北京嘛。因为以前学过一点C语言之类的,if...else if...,但我写入代码中就提示不是内部命令,批处理这块刚接触,基础性的东西还蛮多的
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |