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

[文本处理] findstr命令怎样对比含特殊字符的文本?

[复制链接]
发表于 2011-8-16 13:41:32 | 显示全部楼层 |阅读模式
findstr命令利用/v /g 参数可以做到文本对比但是发现在处理以下格式的文本时无法得出正确结果


文本格式举例

  1. A:b:C \0001 1111\ -X -Y -Z
  2. D\E F \(HHH) /IJK
  3. LM.NOPQ\ RS (T) /UV -W
复制代码
感觉 特殊字符影响的findstr 随即想利用替换方式先进行替换然后对比,最后替换回来
但是这个方式似乎有些绕,希望大家能给出个更好的思路(注:请尽量不要使用第三方工具)
如果说利用for if的话,没有特殊这么个问题,但是工作量为n^n行。
补充方法

目前使用的方法:
for /f "delims=/ tokens=*" 屏蔽掉敏感字符(但是这样过滤掉的是否一致就不得而知了)
然后利用  find "%%i" 1.txt||echo %%i>>2.txt 找出1-2不同
反过来在用一次 找出 2-1 的不同。
发表于 2011-8-16 19:23:14 | 显示全部楼层
如何处理?希望得到什么结果?实际得到什么结果?
 楼主| 发表于 2011-8-16 21:25:12 | 显示全部楼层
回复 2# CUer


   1.如何处理?     能够对比还有 / - 等特殊字符的文本   2.希望得到什么结果?
      文本对比找出不同
   3.实际得到什么结果?

     不支持含有特殊字符的文本
发表于 2011-8-16 21:30:43 | 显示全部楼层
a.txt
file a
abcd efg /h /i -j -k


b.txt
file b
abcd efg /h /i -j -k


c:\Test>findstr /g:a.txt b.txt
abcd efg /h /i -j -k

c:\Test>findstr /v /g:a.txt b.txt
file b
 楼主| 发表于 2011-8-16 22:11:29 | 显示全部楼层
回复 4# CUer

额 那么你试试a.txt
  1. abcd efg /h /i -j -k
复制代码



b.txt
  1. abcd efg /h /i -j -ks
复制代码

   

会如何?
发表于 2011-8-16 22:55:22 | 显示全部楼层
回复 5# bluewing009


一切正常

c:\Test>findstr /g:a.txt b.txt
abcd efg /h /i -j -ks

c:\Test>findstr /v /g:a.txt b.txt

c:\Test>
 楼主| 发表于 2011-8-17 22:49:46 | 显示全部楼层
为什么我在win7下的返回结果总是为空呢?…………
发表于 2011-8-17 22:52:54 | 显示全部楼层
回复 8# bluewing009


    可否上传样本?
 楼主| 发表于 2011-8-19 07:41:43 | 显示全部楼层
回复  bluewing009


    可否上传样本?
CrLf 发表于 2011-8-17 22:52


回复 9# CrLf

1.txt

  1. Ab:C \0001 1111\ -X -Y -Z
  2. D\E F \(HHH) /IJK
  3. LM.NOPQ\ RS (T) /UV -W
复制代码

2.txt为1.txt稍微改变
比如

  1. A:b:C \0001 1111\ -X -Y -Z
  2. D\E F \(HHH) /IJKs
  3. LM.NOPQ\ RS (T) /UV -W
  4. THis IS -a /test
复制代码

那么希望得到的结果:
D\E F \(HHH) /IJKs
THis IS -a /test
发表于 2011-8-19 16:49:38 | 显示全部楼层
恭喜楼主,估计碰到了传说中的 \ bug
 楼主| 发表于 2011-8-20 10:03:25 | 显示全部楼层
回复 11# CrLf


   额...那么你有什么好点的办法么?
发表于 2011-8-20 15:05:07 | 显示全部楼层
回复 12# bluewing009


    把 a.txt 中的 \ 替换成 \\ 试试?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 23:18 , Processed in 0.012367 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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