diff忽略评论

时间:2012-01-06 21:32:00

标签: bash diff

我正在尝试比较2个不同的apaches配置目录。 但我想避免版本之间的差异。例如,我将在2.2.20和2.2.21之间进行比较。

这是我到目前为止所做的:

#!/bin/ksh

source=/root/daniel/scripts/test
dest=/root/daniel/scripts/test2

# TODO: rewrite as awk script
delta=`diff -ur $source $dest`

deleted=`echo "$delta" | grep "^Only in ${source}:" | sed "/^Only in ${source}: //"`
added=`echo "$delta"   | grep "^Only in ${dest}:"   | sed "/^Only in ${dest}: //"`
changed=`echo "$delta" | grep '^\+\+\+' | awk '{print $2}'`

print "Files deleted in destination"
echo $deleted
print "Files Added in destination"
echo $added
print "Files Changed in destination"
echo $changed

添加评论。 基本上,我要比较2个配置目录。您可以在httpd.conf文件中找到apache版本。但我们的想法是忽略所有比较中的版本。

添加评论2。 test和test2是目录,它们不是文件。在2个目录中,您可以找到apache的所有配置文件。 或多或少这个:  +额外的  + httpd.conf  + httpd.conf_20110215  +魔法  + mime.types  +原创  + ssl.crt  + ssl.key  + temp

由于

1 个答案:

答案 0 :(得分:1)

使用diff中的-I选项忽略这些行。

来自man diff

  

-I RE --ignore-matching-lines = RE

      Ignore changes whose lines all match RE.