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

[数值计算] 【已解决】批处理怎样查找两个文件的不同行?

本帖最后由 ads350668398 于 2015-11-14 18:30 编辑
  1. @echo off
  2. for /f "delims=*" %%a in (22.txt) do (
  3. findstr /i "%%a" 11.txt || echo %%a>>3.txt
  4. )
  5. pause>nul
复制代码
**************************************
文件11
11 11
22 22
33 33
44 44
55 55
****************
文件22
11 11
12 35
33 33
88 4
44 44
55 55
****************
输出文件3
12 35
**************
哪个哥们帮忙 看看 哪里错了啊 谢谢

本帖最后由 ads350668398 于 2015-11-9 12:22 编辑

回复 23# terse


    成功了 谢谢 多打-V 就是输出相同的么?

TOP

本帖最后由 terse 于 2015-11-9 11:53 编辑

回复 22# ads350668398
好吧 试试这个
参数 多打一V 换为 x
  1. findstr /ivxg:11.txt 22.txt
复制代码

TOP

好吧 可能真的没有说明白
输出目的:
12 35
88 4
谢谢

TOP

回复 11# 依山居


    没有看明白 输出结果是啥啊

TOP

fc是命令 fc /?
好像用findstr也可以,论坛有 我忘记怎么写的了
尘丶 发表于 2015-11-8 09:22



    输出结果:
22 22 12 35
44 44 88 4
55 55 44 44
55 55

TOP

  1. gawk "NR==FNR{a[$0]=$0}NR>FNR{if(!($0 in a))print}" 1.txt 2.txt
复制代码

TOP

  1. grep -vxFf 1.txt 2.txt
复制代码

TOP

@echo off
for /f "delims=*" %%a in (11.txt) do (
findstr /i "%%a" 22.txt && echo %%a>>3.txt
)
::输出相同的行
pause>nul

输出结果:
11 11
33 33
44 44
55 55

TOP

  1. D:\temp>findstr /vg:22.txt 11.txt
  2. 12 35
  3. 88 4
复制代码

TOP

本帖最后由 B魔方大人 于 2015-11-8 11:25 编辑

回复 7# ads350668398

比较向同行内容:fc命令
举例:
fc 22.txt 11.txt

另外第二个问题,已经说的很清楚了。for读取22.txt每一行%%a,findstr搜索11.txt是否含有%%a。
而%%a,是包含空格的字符串,所以findstr会当作88or4处理。搜索88和4
详情需要自己查看findstr命令。

TOP

findstr /ixvg:22.txt 11.txt

TOP

你当真是不能好好打字了。

TOP

感谢网友的热心 我扫后 尝试一下

TOP

  1. D:\temp>diff 11.txt 22.txt
  2. 2c2
  3. < 12 35
  4. ---
  5. > 22 22
  6. 4d3
  7. < 88 4
复制代码

TOP

返回列表