本帖最后由 思想之翼 于 2023-4-24 17:00 编辑
下述2段正则表达式,代码1输出结果文本A;代码2依据结果文本A,输出结果文本B。
现在欲将这2个代码合二为一,以实现不输出结果文本A这一中间过程,而将其数值储入内存,然后调用内存数值进行运算,输出结果文本B。
代码1:替换文本数值后,输出结果文本A
字典文本
d:\HY\000001\000001_1.txt ~ 000001_7.txt
替换文本
e:\ZD\GD\000001\000001_1.txt ~ 000001_7.txt
结果文本A【实现目标:不写入7个文本,储存在内存,等待代码2调用】
e:\HY\GD\000001\000001_1.txt ~ 000001_7.txt- @echo off
- setlocal enabledelayedexpansion
- for /l %%f in (1000001,1,1001798) do (
- set p=%%f
- for /l %%g in (1,1,7) do (
- gawk -F"=" "ARGIND>1{if(b[$1]){a[ARGIND]=a[ARGIND]==\"\"?$2:a[ARGIND] \"\n\" $2;next}}{b[$0]++}END{for(i=2;i<=ARGIND;i++){ if(a[i]){f=ARGV[i];sub(/^d:\\HY/,\"e:\\HY\\GD\",f);print(a[i])>f}}}" "e:\ZD\GD\!p:~1!\!p:~1!_%%g.txt" d:\HY\!p:~1!\!p:~1!_%%g.txt
- ))
- exit
复制代码 代码2:合并结果文本A 000001_1.txt ~ 000001_7.txt 共7个文本,提取重复N次的字符,输出结果文本B
结果文本A【实现目标:不读入7个文本,调用代码1储存在内存的数据】
e:\HY\GD\000001\000001_1.txt ~ 000001_7.txt
结果文本B
e:\TQ\GD\000001.txt- @echo off
- setlocal enabledelayedexpansion
- for /l %%f in (1000001,1,1001798) do (
- set p=%%f
- gawk "{for(i=1;i<=NF;i++)a[$i]++}END{for(i in a)if(a[i]==7)print i}" e:\HY\GD\!p:~1!\*.txt>e:\TQ\GD\!p:~1!.txt
- )
- exit
复制代码
|