找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25133|回复: 5

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

[复制链接]
发表于 2015-4-23 10:29:55 | 显示全部楼层 |阅读模式
一、材料
以下文本中有20多个章节是重复的:
二、如何用DOS批命令剔除重复的章节?
发表于 2015-4-23 10:53:31 | 显示全部楼层
  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
复制代码

评分

参与人数 1技术 +1 收起 理由
pan528 + 1 谢谢分享!

查看全部评分

 楼主| 发表于 2015-4-23 12:13:10 | 显示全部楼层
回复 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
结果导出了空文件。
这是为什么?
发表于 2015-4-23 12:40:34 | 显示全部楼层
set x=%%b 放前面
if not "%%b"=="!x!" 始终不成立 echo %%a_%%b 这句不被执行
 楼主| 发表于 2015-4-23 13:08:18 | 显示全部楼层
回复 4# yangfengoo


    谢谢解答!
发表于 2015-4-23 14:13:18 | 显示全部楼层
  1. gawk -F "_" "!a[$2_$3]++" 1.txt > 2.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 20:54 , Processed in 0.018737 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表