标题: [文本处理] 批处理如何删除文本中以指定字符分割成的两个字段/列相同的行 [打印本页]
作者: necnec1 时间: 2014-5-4 15:46 标题: 批处理如何删除文本中以指定字符分割成的两个字段/列相同的行
本帖最后由 pcl_test 于 2016-11-11 19:10 编辑
批处理BAT如何删除重复文本?
ABCD-----ABCD
ACDE----ACDEAF
CGHC----ABCGHC
上面这3组 左边跟右边完全 一模一样的 删除
左边跟右边不一样的就保留
第一组删除 留下二三组
请会的朋友帮忙 谢谢!
作者: cjiabing 时间: 2014-5-4 17:00
for /f "tokens=1,2 delims=——" %%a in (1.txt) do if /i "%%a"=="%%b" echo %%a
作者: DAIC 时间: 2014-5-4 19:52
- @echo off
- (for /f "tokens=1,2 delims=-" %%a in (1.txt) do (
- if "%%a" neq "%%b" (
- echo %%a----%%b
- )
- ))>2.txt
复制代码
作者: necnec1 时间: 2014-5-5 00:09
回复 2# cjiabing
貌似无法保存 BAT一闪就没了
作者: necnec1 时间: 2014-5-5 00:11
回复 3# DAIC
批处理的结果都变样了 很长的一段文本被分割成一半 不知道怎么了
作者: DAIC 时间: 2014-5-5 17:12
回复 5# necnec1
把你的原始文件压缩之后传上来我试试
作者: necnec1 时间: 2014-5-6 19:48
回复 6# DAIC
FEC(TT)03-2998 E-CC(TT)22-3001-75CE359CC-----FEC(TT)03-2998 E-CC(TT)22-3001-75CE359CC
FEC(TT)03-2998 E-CC(TT)22-3551-22CE359CC-----ECFEC(TT)03-2998 E-CC(TT)22-3551-22CE359CC
就是这2组文本 你保存为文本文件就行了
作者: CrLf 时间: 2014-5-6 20:36
借三楼代码小改一下就行了:- @echo off
- (for /f "delims=" %%a in (1.txt) do (
- set "str=%%a"
- setlocal enabledelayedexpansion
- if "!str:*-----=!!str:*-----=-----!" neq "!str!" echo !str!
- endlocal
- ))>2.txt
复制代码
作者: blueskyczg 时间: 2014-5-8 17:10
本帖最后由 blueskyczg 于 2014-5-8 17:11 编辑
回复 8# CrLf
"!str:*-----=!!str:*-----=-----!"
能不能rem下,没看懂,望指教!
作者: CrLf 时间: 2014-5-8 17:37
!str:*-----=!
是把 ACDE----ACDEAF 替换成 ACDEAF
!str:*-----=-----!
是把 ACDE----ACDEAF 替换成 -----ACDEAF
所以- if "!str:*-----=!!str:*-----=-----!" neq "!str!"
复制代码
相当于- if "ACDEAF----ACDEAF" neq "ACDE----ACDEAF"
复制代码
其实写成这样可能更容易看懂- if "!str:*-----=!-----!str:*-----=!" neq "!str!"
复制代码
作者: DAIC 时间: 2014-5-9 08:24
回复 7# necnec1
顶楼就应该给出这种格式的数据,而不是瞎编数据。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |