标题: [文本处理] [已解决]批处理如何把重复字开头的行提取出来到单独的文本? [打印本页]
作者: 每天几分 时间: 2022-11-27 15:29 标题: [已解决]批处理如何把重复字开头的行提取出来到单独的文本?
文本1- 的 diwy
- 的 dewy
- 一 yigg
- 是 uijh
- 了 lnbj
- 了 lebj
- 不 buch
- 在 zddf
- 这 vwyp
- 这 veyp
- 有 yzde
- 个 gewh
- 行 hhrf
- 行 xkrf
- 行 hgrf
- 人 rfww
- 上 uhhg
- 中 vskh
- 大 dadz
- 大 dddz
复制代码
把重复字开头的行提取出来到单独的文本,不重复的不用提取。
实现
文本2- 的 diwy
- 了 lnbj
- 这 vwyp
- 大 dddz
- 行 hhrj
复制代码
文本3- 的 dewy
- 了 lebj
- 这 veyp
- 行 xkrj
复制代码
文本4复制代码
作者: WHY 时间: 2022-11-27 17:15
- PowerShell "gc 1.txt | group{ ($_ -split '\t')[0] } | ?{ $_.Count - 1 } | forEach{ $n=1; $_.Group|forEach{ ac ('' + ++$n + '.txt') -Value $_ } }"
复制代码
作者: WHY 时间: 2022-11-27 17:16
- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1*" %%i in (1.txt) do (
- set /a _%%i +=1
- if !_%%i! EQU 1 (
- set "#%%i=%%j"
- ) else if !_%%i! EQU 2 (
- >>2.txt echo;%%i !#%%i!
- >>3.txt echo;%%i %%j
- ) else if !_%%i! GEQ 3 (
- set /a n = !_%%i! + 1
- >>!n!.txt echo;%%i %%j
- )
- )
- pause
复制代码
作者: hfxiang 时间: 2022-11-27 17:34
将- 的 diwy
- 的 dewy
- 一 yigg
- 是 uijh
- 了 lnbj
- 了 lebj
- 不 buch
- 在 zddf
- 这 vwyp
- 这 veyp
- 有 yzde
- 个 gewh
- 行 hhrf
- 行 xkrf
- 行 hgrf
- 人 rfww
- 上 uhhg
- 中 vskh
- 大 dadz
- 大 dddz
复制代码
以ANSi编码格式保存为1.txt
下载gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe )
执行- 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)- 的 diwy
- 了 lnbj
- 这 vwyp
- 行 hhrf
- 大 dadz
复制代码
结果(3.txt)- 的 dewy
- 了 lebj
- 这 veyp
- 行 xkrf
- 大 dddz
复制代码
结果(4.txt)复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |