2016-04-26 3 views
1

私はGNU diffユーティリティを使って設定ファイルの変更を確認しています(現時点では、Cisco ASAおよびIOSデバイスのみを参照しています)。インデントのレベルに基づいて構成グループの変更を識別する機能が必要です。私は始まる、設定のグループ全体を印刷する「ネットワーク・オブジェクトのオブジェクトハイラル-DC02」は除去され、diff:インデントに基づいてセクション全体を表示する

object-group network DM_INLINE_NETWORK_3 
network-object object Hyrule-DC02 
network-object object Hyrule-DC03 

三行目の場合:

例えば、コンフィギュレーションのこのビットを取ります最初の行はインデントなしで最後の行までインデントされます。この例では、私が印刷したい行は次のようになります。

object-group network DM_INLINE_NETWORK_3 
network-object object Hyrule-DC03 

ここでは、コードの構造の一例です。インデントによるグルーピングのこのスタイルは、設定全体で使用されます。

object-group network DM_INLINE_NETWORK_2 
network-object object Hyrule-NS01-MGMT 
network-object object Hyrule-NS01-VIP1 
object-group network DM_INLINE_NETWORK_3 
network-object object Hyrule-DC02 
network-object object Hyrule-DC03 

助けていただければ幸いです!この例題/質問が十分に明確でない場合は、教えてください。

+4

gnu diff以上のものが必要です。あなたはある種のスクリプト言語全体が必要です。 awkまたはperlまたはbash。 – Mort

+1

ようこそStackOverflowへ! SOは無料のコーディングサービスではありませんので、あなたの努力を示す必要があります。そして、時間をかけてhttp://stackoverflow.com/help/askingに行ってください。 –

答えて

0

一般的なUnixツールに基づいたソリューションを紹介しましょう。

  • まずプロセスを持つファイルには、1つのラインに、2つのファイルのインデント行を折り返すためにをsedの。先頭のスペースを制御文字に置き換えます。このためにはsed{Hs、およびpコマンドを使用します。
  • 次に、2つの折りたたまれたファイルにdiffを実行して、バイナリファイルの処理が正常であることを指定します。最後に、を実行
  • 差分の先頭文字(例えば<又は>)、改行、インデントと制御文字を置換することにより出力を展開する差分の出力にをセッド。ここではsedsコマンドが必要です。
+0

これは非常に役に立ちました。それが私が必要とした方向だった、ありがとう。 – louspudtle

関連する問題