[英]How do I compare two text files while ignoring fields that change from one instance to the next?
我有纯文本的大学成绩单……这些是为了使用固定宽度的字体并有 ascii 列等等。 如果对生成它们的程序的更改引入了缺陷,我很难在视觉上注意到,我的眼睛呆滞了。 但是,每次生成相同的文档时,其中的时间戳都会更改。 有没有办法强制 diff (或类似工具)忽略特定行,甚至该行中特定范围的字符?
如果我使用 -I "regexp" 开关,这将忽略整行中的差异,即使我只想忽略对日期的更改。
有没有更好的工具来解决这个问题? 可以用一些 bash fu 来做这个吗?
看看他的网页,也许它会做你想要的。 http://ifdeflinux.blogspot.com/2011/08/diff-two-files-ignoring-certain-fields.html
保罗
您可以为此使用进程替换,传递一些其他命令的输出来代替文件本身。 例子:
$ diff file1 file2
2c2
< example: 123
---
> example: 456
$ diff <(sed -r 's/(.*: )[0-9]+/\1/' file1) <(sed -r 's/(.*: )[0-9]+/\1/' file2)
[files are the same]
在示例中, sed
命令只是删除冒号后的任何数字 - 您需要想出一个适合您的输入数据的命令,它会去除您的时间戳。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.