使用するPHP
2つのテキストファイルを比較したいと思います。最初のファイルは、もう1つのファイルと比較する必要があるメインファイルです。 first.txt
のラインがsecond.txt
に存在する又はそれと異なっているしない場合、スクリプトは、例えば、その行のブロック全体を返すべきである:正規表現を使用してテキストブロックを抽出する
第
interface Vlan11 description xxx ip address 10.10.10.10 255.255.255.255 shutdown ! vlan 34 ! vlan 17 name sth ! route-map sth match ip address exm set ip next-hop 1.2.3.4 !
first.txt。私はを使用
first.txt
行を抽出し比較するためにTXT
interface Vlan11
description xxx
ip address 20.20.20.20 255.255.255.255
shutdown
!
vlan 34
!
route-map sth
match ip address exm
set ip next-hop 1.2.3.4
!
interface Vlan11
description xxx
ip address 20.20.20.20 255.255.255.255
shutdown
!
かで:とsecond.txt
でそれらを検索するには、今IPアドレスはsecond.txt
の3行目では異なっている、そして我々は(バン(!
)へinterface
から)このラインのブロックを返す必要がありますvlan
ブロックのsecond.txt
1は存在しないので、リターンをすべき:
vlan 17
name sth
!
これは、2つの前髪の間のブロックを抽出し、正規表現を書くのは簡単だが、私は「ドンブロックの先頭に戻る必要がありますので、どのようなパターンが起きるべきか知っているh。
また、すべてのブロックが文字で始まり、最後にスペースで開始し、次に終わりで始まるいくつかの行がありますが、問題はパターンの開始方法です。
あなたが望む通りに「diff」しないでしょうか? – Jan
ブロックは2つのファイルで同じ順序になっていますか? –
これは 'diff'ですか? @Jan –