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

[文本处理] [已解决]批处理如何查找出txt文本里每一行内容中重复出现指定次数的字符串?

[复制链接]
发表于 2016-1-8 10:15:09 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-8-9 23:56 编辑

例:
a.txt文本内容为:
01 02 03 01 02
04 05 06 04 06
07 08 09 10 11 10

处理保存为b.txt:
01 02
04 06
10

就是将文本行字符出现2次的保存下来,
文本内容行字串存在个数长度不等的情况。
保存为b.txt

评分

参与人数 1PB -4 收起 理由
pcl_test -4 勿发笼统、无意义的标题

查看全部评分

发表于 2016-1-8 10:34:11 | 显示全部楼层
 楼主| 发表于 2016-1-8 10:46:38 | 显示全部楼层
回复 2# 回家路上


    你好,页面上的代码依次试过,没有用。看标题本身与我需要的也有不符。
发表于 2016-1-8 10:59:36 | 显示全部楼层
本帖最后由 flyinnet9 于 2016-1-8 12:07 编辑

给你的是思路,重复字的不就是么
  1. @echo off
  2. for /f "delims=" %%a in (data.txt) do (
  3.   for %%b in (%%a) do (   
  4.     if defined #%%b set /p =%%b <nul
  5.     set #%%b=1
  6.   )
  7.   for /f "tokens=1 delims==" %%c in ('set #') do set %%c=
  8.   echo.
  9. )
  10. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
qzwifi + 1 OK,谢谢!

查看全部评分

 楼主| 发表于 2016-1-8 11:27:13 | 显示全部楼层
回复 4# flyinnet9


请问为何我按上述代码来只能处理第一行,其它的不行呢? 补充一下文本内容行字串存在个数长度、排序不等的情况。
发表于 2016-1-8 11:33:48 | 显示全部楼层
回复 5# qzwifi


    上面的代码按你给的例子写的,如果和例子不同,结果有差异也很正常,要么给完整的例子,要么自己写
 楼主| 发表于 2016-1-8 11:42:33 | 显示全部楼层
回复 6# flyinnet9


    可是我的例子与我要处理的是一样的只是字串长了与行数多了,
每行的字串要么只有出现一次,要么出现2次,不存在出现3次或以上的。有的一行有4、5十个字串。把出现2次的保存,出现1次的不要!
我试您的代码例子没问题。请问这种情况一般会是什么原因造成的呢?我自己把懂的能试的都试了下,以您的代码改。都不行。
 楼主| 发表于 2016-1-8 11:49:04 | 显示全部楼层
本帖最后由 qzwifi 于 2016-1-8 11:55 编辑

回复 6# flyinnet9


    如下例就不行:
一:01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 13 14 15 16
二:01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 01 11 21 31
三:01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 10 20 30

处理完后是:
一:13 14 15 16
二:01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 42 01 11 21 31
三:01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 10 20 30


只有第一行可以
发表于 2016-1-8 12:08:14 | 显示全部楼层
回复 8# qzwifi


    4楼已改

评分

参与人数 1技术 +1 收起 理由
qzwifi + 1 好的,OK了。谢谢!

查看全部评分

 楼主| 发表于 2016-3-8 00:45:23 | 显示全部楼层

[已解决]批处理如何找出文本各行内容中出现3次的字串?

本帖最后由 qzwifi 于 2016-3-8 12:35 编辑

例:
a.txt文本内容为:
01 01 01 02 02 02 03 03 03 04 05 05
04 04 05 04 05 05 06 06 06 07 07 08
07 08 09 07 08 08 07 09 09 10 11 12

处理保存为b.txt:
01 02 03
04 05 06
07 08 09

将文本行字符出现3次的保存下来,处理完成保存为b.txt
注:文本内容行字符存在个数长度不等的情况


以下是论坛上的朋友写的找出现2次的代码:
http://www.bathome.net/redirect. ... 0956&ptid=38999

评分

参与人数 1PB -4 收起 理由
pcl_test -4 引用代码直接发链接

查看全部评分

发表于 2016-3-8 01:20:44 | 显示全部楼层
  1. """
  2. python3取出重复3次的字符串保存为3列.py
  3. http://bbs.bathome.net/thread-39592-1-1.html
  4. codegay 2016年3月8日 00:56:57

  5. """

  6. #测试数据
  7. a="""
  8. 01 01 01 02 02 02 03 03 03 04 05 05
  9. 04 04 05 04 05 05 06 06 06 07 07 08
  10. 07 08 09 07 08 08 07 09 09 10 11 12
  11. """
  12. with open("a.txt","w+") as f:
  13.     f.write(a)

  14. #python3取出重复3次的字符串保存为3列.py
  15. with open("a.txt") as f:
  16.     txt=f.read().split()

  17. t3=[]
  18. [t3.append(r) for r in txt if (r not in t3) and txt.count(r)>=3]

  19. #N为结果输出为多少列
  20. N=3
  21. r3=[' '.join(t3[r:r+N])+"\n" for r in range(0,len(t3),N)]

  22. print(r3)
  23. with open("out.txt","w+") as f:
  24.     f.writelines(r3)
复制代码
 楼主| 发表于 2016-3-8 02:00:53 | 显示全部楼层
回复 2# codegay

感谢楼上提供的代码,请问可以直接写bat操作的吗?哪位可以写一下。不安装python3的。谢谢!
发表于 2016-3-8 09:56:19 | 显示全部楼层
本帖最后由 flyinnet9 于 2016-3-8 10:22 编辑
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. (for /f "delims=" %%a in (a.txt) do (
  4.   for %%b in (%%a) do (
  5.     set /a #%%b+=1
  6.     if !#%%b!==3 set /p =%%b <nul
  7.   )
  8.   echo.
  9. ))>b.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
qzwifi + 1 谢谢!

查看全部评分

 楼主| 发表于 2016-3-8 10:16:02 | 显示全部楼层
回复 4# flyinnet9

你好,你的代码运行后是空白文本,没有得出保存结果。望能修改一下
发表于 2016-3-8 10:20:28 | 显示全部楼层
回复 5# qzwifi


    和a.txt放同一个目录
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 06:36 , Processed in 0.047826 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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