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

[文本处理] [已解决]批处理如何把重复字开头的行提取出来到单独的文本?

[复制链接]
发表于 2022-11-27 15:29:34 | 显示全部楼层 |阅读模式
文本1
  1. 的        diwy
  2. 的        dewy
  3. 一        yigg
  4. 是        uijh
  5. 了        lnbj
  6. 了        lebj
  7. 不        buch
  8. 在        zddf
  9. 这        vwyp
  10. 这        veyp
  11. 有        yzde
  12. 个        gewh
  13. 行        hhrf
  14. 行        xkrf
  15. 行        hgrf
  16. 人        rfww
  17. 上        uhhg
  18. 中        vskh
  19. 大        dadz
  20. 大        dddz
复制代码
把重复字开头的行提取出来到单独的文本,不重复的不用提取。
实现
文本2
  1. 的        diwy
  2. 了        lnbj
  3. 这        vwyp
  4. 大        dddz
  5. 行        hhrj
复制代码
文本3
  1. 的        dewy
  2. 了        lebj
  3. 这        veyp
  4. 行        xkrj
复制代码
文本4
  1. 行        hgrj
复制代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2022-11-27 17:15:28 | 显示全部楼层
  1. PowerShell "gc 1.txt | group{ ($_ -split '\t')[0] } | ?{ $_.Count - 1 } | forEach{ $n=1; $_.Group|forEach{ ac ('' + ++$n + '.txt') -Value  $_ } }"
复制代码
发表于 2022-11-27 17:16:08 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1*" %%i in (1.txt) do (
  4.     set /a _%%i +=1
  5.     if !_%%i! EQU 1 (
  6.         set "#%%i=%%j"
  7.     ) else if !_%%i! EQU 2 (
  8.         >>2.txt echo;%%i        !#%%i!
  9.         >>3.txt echo;%%i        %%j
  10.     ) else if !_%%i! GEQ 3 (
  11.         set /a n = !_%%i! + 1
  12.         >>!n!.txt echo;%%i        %%j
  13.     )
  14. )
  15. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
每天几分 + 1 多谢

查看全部评分

发表于 2022-11-27 17:34:18 | 显示全部楼层

  1. 的        diwy
  2. 的        dewy
  3. 一        yigg
  4. 是        uijh
  5. 了        lnbj
  6. 了        lebj
  7. 不        buch
  8. 在        zddf
  9. 这        vwyp
  10. 这        veyp
  11. 有        yzde
  12. 个        gewh
  13. 行        hhrf
  14. 行        xkrf
  15. 行        hgrf
  16. 人        rfww
  17. 上        uhhg
  18. 中        vskh
  19. 大        dadz
  20. 大        dddz
复制代码
以ANSi编码格式保存为1.txt
下载gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe
执行

  1. gawk "!A[$1]{A[$1]=$0;next}{if(A[$1]!~/^[0-9]+$/){print A[$1]>"2.txt";print $0>"3.txt";A[$1]=3}else{print $0>A[$1]".txt"};A[$1]++}" 1.txt>con
复制代码
结果(2.txt)

  1. 的        diwy
  2. 了        lnbj
  3. 这        vwyp
  4. 行        hhrf
  5. 大        dadz
复制代码
结果(3.txt)

  1. 的        dewy
  2. 了        lebj
  3. 这        veyp
  4. 行        xkrf
  5. 大        dddz
复制代码
结果(4.txt)

  1. 行        hgrf
复制代码

评分

参与人数 1技术 +1 收起 理由
每天几分 + 1 谢谢

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 10:23 , Processed in 0.019362 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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