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

[文本处理] 请问bat如何按指定列来删除重复行

  1.   需批量处理多个文件    请问bat如何按指定列来删除重复行
  2. A*B*3 A
  3. A*B*C B
  4. A*B*C A
  5. 需将Tab "\t" 为分隔符  , 不能按 "*" 为分隔符
  6. bat完成按指定第列数值去重复, 例如第 1列,   如果第1列有重复情况,  似乎删那一行都没问题
  7. >*.txt
  8. A*B*3 A
  9. A*B*C B
复制代码

回复 2# hfxiang


awk -F "\t" '!a[$1]++' a
    嗯嗯, 但是我想用bat来实现

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%x in ('dir /b /a-d *.txt') do (
  4. for /f "useback tokens=1-9* delims= " %%a in ("%%x") do (
  5. if %%h equ 1 (
  6. if not defined %%i (
  7.                echo,%%i
  8.                set %%i=1
  9.   )
  10. )))>%%x.txt
  11. endlocal
  12. pause
复制代码
拼凑了一个为什么没有输出呢

TOP

多谢楼上3位大哥哥

TOP

回复 6# Five66


    结果不准确

TOP

回复 7# 77七


   虽然区分了大小写, 但 似乎不支持特殊字符,  是不是循环内部问题呢

TOP

返回列表