Board logo

标题: [文本处理] 【已解决】批处理如何删除文本中以指定字符分割的指定字段重复的行 [打印本页]

作者: pan528    时间: 2015-4-23 10:29     标题: 【已解决】批处理如何删除文本中以指定字符分割的指定字段重复的行

一、材料
以下文本中有20多个章节是重复的:
二、如何用DOS批命令剔除重复的章节?
作者: yangfengoo    时间: 2015-4-23 10:53

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1* delims=_" %%a in (1.txt) do (
  4. if not "%%b"=="!x!" echo @%%a_%%b
  5. set x=%%b
  6. )>>new.txt
复制代码

作者: pan528    时间: 2015-4-23 12:13

回复 2# yangfengoo

已通过测试,非常谢谢!

另外请教一下:为什么“set x=%%b”不能放在前面?
我开始写的代码是:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1* delims=_" %%a in (1.txt) do (
set x=%%b
if not "%%b"=="!x!" echo %%a_%%b
)>>new.txt
结果导出了空文件。
这是为什么?
作者: yangfengoo    时间: 2015-4-23 12:40

set x=%%b 放前面
if not "%%b"=="!x!" 始终不成立 echo %%a_%%b 这句不被执行
作者: pan528    时间: 2015-4-23 13:08

回复 4# yangfengoo


    谢谢解答!
作者: gawk    时间: 2015-4-23 14:13

  1. gawk -F "_" "!a[$2_$3]++" 1.txt > 2.txt
复制代码





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