[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

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

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

怎么找出“77795”这一行,
谢谢!

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

TOP

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

评分人数

TOP

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

签名的最后三个字耐人寻味

TOP

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

TOP

回复 4# bailong360


    全是 ID,pcl 的后宫都在这了

TOP

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

TOP

回复 7# CrLf
  1. gawk "{a[$0]++}END{for(i in a)if(a[i]>1)print i}" 1.txt
复制代码
一个数组就够啦
1

评分人数

TOP

回复 2# flyinnet9


    你可能没有理解楼主的问题

TOP

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

77795
这样?

77795
77795
还是这样?

TOP

回复 7# CrLf
  1. gawk "a[$0]++" 1.txt
复制代码
一个自增就够啦

TOP

回复 11# bailong360


    嗯,那要看楼主怎么回答 10 楼的问题了

TOP

回复 10# DAIC


    要第二种的,重复几个就列出来几个。

TOP

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

TOP

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



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

TOP

返回列表