Board logo

标题: [文本处理] [已解决]批处理有什么方法可以找出文本中重复的行? [打印本页]

作者: ljicer    时间: 2015-8-14 14:28     标题: [已解决]批处理有什么方法可以找出文本中重复的行?

本帖最后由 ljicer 于 2015-8-14 22:58 编辑

有一个文本文件,里面有部分行内容重复,有什么方法可以把这些重复的行找出来并写到一个新的文本文件里面。

不知道怎么上传附件,部分内容如下:
77790
77791
77792
77793
77794
77795
77795
77796
77797
77798
77799

怎么找出“77795”这一行,
谢谢!
作者: flyinnet9    时间: 2015-8-14 15:07

  1. findstr /c:"77795" 1.txt >2.txt
复制代码

作者: pcl_test    时间: 2015-8-14 15:10

  1. @echo off
  2. for /f %%a in (1.txt) do (
  3.     if defined #%%a echo;%%a
  4.     set #%%a=def
  5. )
  6. pause
复制代码

作者: bailong360    时间: 2015-8-14 15:17

本帖最后由 bailong360 于 2015-8-14 17:51 编辑
  1. @sort 1.txt|uniq -d
  2. @pause
复制代码
回复 3# pcl_test

签名的最后三个字耐人寻味
作者: 尘丶    时间: 2015-8-14 15:57

  1. for /f "delims=" %%i in (1.txt) do findstr /c:"%%i" 2.txt 2>nul&&echo %%i>>2.txt
  2. pause
复制代码

作者: CrLf    时间: 2015-8-14 16:36

回复 4# bailong360


    全是 ID,pcl 的后宫都在这了
作者: CrLf    时间: 2015-8-14 16:37

  1. gawk "a[$0]++{b[$0]++}END{for(i in b)print $0}" 1.txt
复制代码

作者: DAIC    时间: 2015-8-14 17:00

回复 7# CrLf
  1. gawk "{a[$0]++}END{for(i in a)if(a[i]>1)print i}" 1.txt
复制代码
一个数组就够啦
作者: DAIC    时间: 2015-8-14 17:01

回复 2# flyinnet9


    你可能没有理解楼主的问题
作者: DAIC    时间: 2015-8-14 17:03

如果77795出现3次的话,楼主希望得到什么结果呢?

77795
这样?

77795
77795
还是这样?
作者: bailong360    时间: 2015-8-14 17:52

回复 7# CrLf
  1. gawk "a[$0]++" 1.txt
复制代码
一个自增就够啦
作者: CrLf    时间: 2015-8-14 17:55

回复 11# bailong360


    嗯,那要看楼主怎么回答 10 楼的问题了
作者: ljicer    时间: 2015-8-14 22:55

回复 10# DAIC


    要第二种的,重复几个就列出来几个。
作者: ljicer    时间: 2015-8-14 23:06

谢谢大家帮忙,我自己不知道白了多少根头发也没能实现,你们一条命令就实现了,虽然后面几种写法我现在一个也看不懂,但还是要谢谢你们,我会把他收藏起来慢慢研究。
作者: ljicer    时间: 2015-8-14 23:21

pcl_test 发表于 2015-8-14 15:10



    谢谢你的代码,我加进去就能用了。但是你的代码我还是看不明白,
“ if defined #%%a echo;%%a” 这句的意思是不是如果%%a不为空就echo出来,
“set #%%a=def” 这句就不明白什么意思,估计很关键,我一注释掉就不行。
方便的话能不能帮忙解释下,谢谢!
作者: Batcher    时间: 2015-8-15 12:02

回复 15# ljicer


if命令教程17页有类似的例子,视频里面有讲解。
http://bbs.bathome.net/thread-31727-1-1.html




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