2016-05-03 8 views
0

は、私は、次のawkコマンド理解awkコマンド

awk -F "<name>|</name>|<machine>|</machine>" '{if($0 ~ "<name>" && $0 ~ "</name>") nm=$2;else if($0 ~ "<machine>" && $0 ~ "</machine>") {print nm,$2}}' config.xml 

このコマンドは、私に次の形式でWebLogic管理対象サーバーとそれぞれのホストの出力を与えているを理解する上で助けを必要としています。

managed_server1 host1 
managed_server2 host2 
managed_server3 host3 
+2

あなたはそれを理解しようとしましたか?どのような部分、特に、あなたは混乱していますか? –

+0

Arnold RobbinsのEffective Awk Programming、第4版を読んでみると、それははっきりしています。 –

+0

こんにちはエタン、 私はしようとしました。 – Sumit

答えて

0

これは特によく書かれたスクリプトはありませんが、この形式の行から値を抽出する(この順に)

<name>xxx</name> 
<machine>yyy</machine> 

出力

xxx yyy 

フィールド区切り文字が開くように設定/ close xmlタグであり、最初のペアが行内にある場合、変数を2番目のフィールドの値に設定し、2番目のペアが存在する場合は、前の値セットと現在の2番目のフィールドを出力します。

+0

あなたは私に故障を与えることでそれを理解するのを助けることができますか? – Sumit

+0

ありがとうございましたkarakfa、しかし私はより多くの内訳を探しています。 – Sumit

+0

"フィールド区切り文字を開いて閉じるxmlタグに設定し、最初のペアが行内に存在する場合は変数を2番目のフィールドの値に設定し、2番目のペアが存在する場合は前の値セットと現在の2番目のフィールドを表示します。十分ではありません? – karakfa

関連する問題