2012-01-06 9 views
0

私は2つの異なるapacheの設定ディレクトリを比較しようとしています。 しかし、私はバージョンの違いを避けたい。たとえば、2.2.20と2.2.21を比較します。diff diffのコメントを

この私がこれまで持っているもの:

#!/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つのconfigディレクトリを比較します。 Apacheのバージョンはhttpd.confファイルにあります。しかし、その考え方は、すべての比較でバージョンを無視することです。

コメントを追加しています。 testとtest2はディレクトリですが、ファイルではありません。 2つのディレクトリには、apacheのすべての設定ファイルがあります。 多かれ少なかれ、この: +余分 + httpd.confの + httpd.conf_20110215 +魔法 +のmime.types +オリジナル + ssl.crt + ssl.key +一時

おかげ

+1

? –

+0

'test'と' test2'ファイルの内容を表示できますか? –

+0

重複した質問。ここの答えを見てください:http://unix.stackexchange.com/questions/17040/how-to-diff-files-ignoring-comments-lines-starting-with – RNA

答えて

1

diffで-Iオプションを使用すると、行が無視されます。 man diff

-I RE --ignore-マッチングラインから

= RE

ファイル内のバージョンがある
 Ignore changes whose lines all match RE.