Xenホストを確認するためのスクリプトの作成を開始しました。問題は実際には2つです。まず、次のコードスニペットがあります。
TMPFILE001=/tmp/FILE001.rx TMPFILE002=/tmp/FILE002.rx TMPFILE003=/tmp/FILE003.rx xe vm-list params = uuid、is-controlドメイン| grep -B1 true | grep uuid | query awk {'print $5'} > $TMPFILE001 xe vm-list params=uuid --minimal tr ',' '\n' > $TMPFILE002
したがって、2つのリストが提供され、FILE002.rxに表示されるすべてのエントリを削除して、FILE001.rxに表示されなくなり、FILE003.rxに出力しようとします。
理想的にはその中にはどんなファイルも使用しませんが、変数にキャプチャして動作させようとします。
したがって、可能であれば、2つのコマンドの出力を比較し、コマンド1から取得した後、コマンド2の出力の残りの部分のみを表示するスクリプトを実行することをお勧めします。
コマンド1の出力。
猫/tmp/FILE001.rx 468190e5-c78b-4337-8094-20638353b470 5926bbf3-c48c-4c2a-8113-d7e58520cfe7 3f98ee14-5e60-4e9b-852a-f924ffe80791
コマンド2の出力(切り捨て)。
猫/tmp/FILE002.rx |ヘッド-5 37ae6b9e-8a00-ab10-7e17-3d70ab275b9b d8208537-0d69-1332-9301-4699d194430f 1cf06668-5450-4d44-a7ba-c2c7b6bcd6b2 7d11c6e3-48ef-0e5e-c6ed-e8f2548533fd 7d3d0ba3-a6d6-d2a7-99f0-06fa74e625fa
答え1
comm
コマンドを見てください。次の2つのファイルを受け取ってください
f1.txt
item1
item2
item3
item4
item5
item6
f2.txt
item1
item2
item22
item3
item4
出力
$ comm -23 f1.txt f2.txt
item5
item6
答え2
質問の一部に答えるには、-Fフラグと一緒にgrepを使用して2つのファイル間の違いを比較します。その後、-vと組み合わせて必要な違いを取り除きました。
grep -vxFf $TMPFILE001 $TMPFILE002 > $TMPFILE003
答え3
または、必要に応じて次のことを実行できます。
diff file1 file2 | grep "<" | sed 's/^<\ //g' > file3