找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24803|回复: 7

[文本处理] [已解决]批处理如何将批量质检记录格式文本,统计每个文本指定字符列出现次数。

[复制链接]
发表于 2013-7-31 18:41:47 | 显示全部楼层 |阅读模式
本帖最后由 a000000_82 于 2013-7-31 19:47 编辑

文本数量0001.txt~9xxx.txt

如3524.txt内容为:

07a★☆☆★☆★☆☆★★★★★☆☆★☆☆☆★☆★★☆☆★☆★☆★☆☆★☆★☆☆★☆★☆★☆
18b★☆★★★★☆☆☆☆★★★★☆★☆★★★★★★☆☆★☆☆☆★☆☆☆☆★☆★★☆★★☆☆
22b★☆★★★★☆★★☆★★★☆☆★★★☆★☆★★☆☆★☆☆☆★★☆★☆★☆★★☆☆★☆☆

每个文本行数不变,列数不固定。

需统计列指定字符为:





用以上字符统计所有文本指定字符列出现的次数,

并将统计文本名及出现次数写入(检统.txt)文本。

(检统.txt)文本内容为:

0001.txt:05
2xxx~~~~
3524.txt:02
7xxx~~~~
9xxx.txt:00








望各位大神帮帮忙!!谢谢各位达人~~~

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-7-31 19:29:00 | 显示全部楼层
本帖最后由 weichenxiehou 于 2013-7-31 19:35 编辑

回复 1# a000000_82
好久没写批了,速度实在是慢啊。

  1. @echo off&setlocal enabledelayedexpansion
  2. (for %%a in (*.txt) do (
  3.   set/a n=0,m=0,total=0
  4.   for /f %%b in ('type %%a') do (
  5.     set/a n+=1
  6.     set line!n!=%%b
  7.   )
  8.   call :check
  9.   echo,%%a:!total!
  10. ))>result.txt
  11. start result.txt
  12. goto :eof

  13. :check
  14. if "!line1:~%m%,1!!line2:~%m%,1!!line3:~%m%,1!"=="★☆☆" set/a total+=1
  15. set/a m+=1
  16. if not "!line1:~%m%,1!"=="" goto :check
复制代码

评分

参与人数 1技术 +1 收起 理由
a000000_82 + 1 ok

查看全部评分

 楼主| 发表于 2013-7-31 19:45:56 | 显示全部楼层
很好,谢谢weichenxiehou帮忙!
发表于 2013-8-1 14:35:29 | 显示全部楼层
每个文件,只有3行么?
我觉得处理的逻辑,应该首先行列转置,然后搞行搜索。
发表于 2013-8-1 16:25:57 | 显示全部楼层
本帖最后由 CrLf 于 2013-8-1 16:34 编辑
  1. sed "s/./&\n/g" ????.txt|sort|uniq -c|findstr "★ ☆"
复制代码

  1. for %%a in (★ ☆) do type *.txt 2>nul|gawk -v RS="%%a" "END{print NR-1,RS}" a.txt|more
复制代码
发表于 2013-8-1 17:39:31 | 显示全部楼层
回复 2# weichenxiehou


计算字符串长度,可以看看plp的帖子http://bbs.bathome.net/viewthread.php?tid=11799
拓展下,不在乎效率的话可以简单这样写:
  1. set str=测试123
  2. cmd /u /v /c echo;!str!>a.txt
  3. for %%a in (a.txt) do set /a size=%%~za/2-2
  4. echo %size%
复制代码
发表于 2013-8-1 19:41:15 | 显示全部楼层
回复 5# CrLf
呵呵,CRLF最近是不是回帖太多,没有仔细看清题意啊?楼主的意思是三行相同位置的字符的组合满足一定条件的次数。
发表于 2013-8-2 16:35:57 | 显示全部楼层
回复 7# weichenxiehou


    汗...按列分割麻烦点:
  1. gawk -F "" "{if(FNR<3){for(i=1;i<=NF;i++)ar[FNR,i]=$i}else{n=0;for(;i--;){if(ar[1,i] ar[2,i] $i=="★☆☆")n++};print FILENAME ":" n}}" *.txt>检统.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 15:23 , Processed in 0.022993 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表