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

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

一、材料
以下文本中有20多个章节是重复的:
二、如何用DOS批命令剔除重复的章节?

  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

评分人数

    • pan528: 谢谢分享!技术 + 1

TOP

回复 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
结果导出了空文件。
这是为什么?

TOP

set x=%%b 放前面
if not "%%b"=="!x!" 始终不成立 echo %%a_%%b 这句不被执行

TOP

回复 4# yangfengoo


    谢谢解答!

TOP

  1. gawk -F "_" "!a[$2_$3]++" 1.txt > 2.txt
复制代码
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

返回列表