标题: [文本处理] 【已解决】批处理如何删除文本中以指定字符分割的指定字段重复的行 [打印本页]
作者: pan528 时间: 2015-4-23 10:29 标题: 【已解决】批处理如何删除文本中以指定字符分割的指定字段重复的行
一、材料
以下文本中有20多个章节是重复的:
二、如何用DOS批命令剔除重复的章节?
作者: yangfengoo 时间: 2015-4-23 10:53
- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1* delims=_" %%a in (1.txt) do (
- if not "%%b"=="!x!" echo @%%a_%%b
- set x=%%b
- )>>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
- gawk -F "_" "!a[$2_$3]++" 1.txt > 2.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |