标题: [文本处理] [已解决]批处理比对两个文本文件出错了,求助问题出在那? [打印本页]
作者: thp2008 时间: 2023-9-2 14:09 标题: [已解决]批处理比对两个文本文件出错了,求助问题出在那?
曾经在之前的贴子中,求助过比对两个文本文件中不同名称的行,一直用着没有问题。只前的贴子:http://www.bathome.net/viewthread.php?tid=66449&highlight=
但是我今天再比对,两个文本文件的时候,就发现出错了,比对不出来,明明有7行是不同的,但就是找不出来,我手工找了4个出来,高手帮我看看问题出在那里,我全部打包上传到附近中去。
附件下载:
https://netcut.cn/api/file/downl ... nfizs22xzsu8s5c5tr1
作者: hfxiang 时间: 2023-9-2 15:02
回复 1# thp2008 - gawk "NR==FNR{if(!($0 in T)){a[++i]=$0;T[$0]=1}next}!($0 in T){a[++i]=$0;T[$0]=2;next}$0 in T{if(T[$0]==1){T[$0]=3}}END{for(j=0;j++<i;){if(0+T[a[j]]<3){print a[j]}}}" Full.txt BiDui.txt>out.txt
复制代码
结果(out.txt)- 棕颈鸭
- 丑鸭
- 弗氏鸥
- 黑顶林莺
- 灰翅鸥
- 梯氏鸫
- 细纹苇莺
复制代码
不知道是否满足要求?
另简版(特例:BiDui.txt 是 Full.txt 的子集时):- gawk "NR==FNR{a[$0]++;next}!a[$0]++" BiDui.txt Full.txt>out.txt
复制代码
作者: 77七 时间: 2023-9-2 15:20
写反了吧,两个文本。- @echo off
- mode con cols=60 lines=41
- chcp 65001
- set "file1=1.txt"
- set "file2=2.txt"
- call :1 "%file1%" "%file2%"
- call :1 "%file2%" "%file1%"
- pause>nul & exit
-
- :1
- setlocal
- set n=0
- echo 以下字符串 仅在 %~2 中存在
- for /f "usebackq delims=" %%a in ("%~1") do (
- set _"%%a"=1
- )
- for /f "usebackq delims=" %%a in ("%~2") do (
- if not defined _"%%a" (
- echo %%a
- set /a n+=1
- )
- )
- echo Total number of bird species: %n%
- echo=&echo=
- endlocal
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |