GNU/Linux >> Linux の 問題 >  >> Linux

Bashスクリプトの問題– 2つのリストを比較して、3つ目のリストを作成しますか?

Xenホストをチェックするためにまとめているスクリプトの始まりがあります…この質問は実際には2つあります。まず、以下のコードスニペットがあります;

 TMPFILE001 =/tmp/FILE001.rxTMPFILE002=/tmp/FILE002.rxTMPFILE003=/tmp/FILE003.rxxe vm-list params =uuid、is-control-domain | grep -B1 true | grep uuid | awk {'print $ 5'}> $ TMPFILE001xe vm-list params =uuid --minimal | tr'、''\ n'> $ TMPFILE002 

したがって、これにより2つのリストが得られます。FILE002.rxに表示されるものをFILE001.rxに表示されないように削除し、それをFILE003.rxに出力します。

理想的には、これで使用されるファイルはまったくありませんが、変数にキャプチャしようとして、ファイルを機能させるのに苦労していました。

したがって、可能であれば、スクリプトを実行して、2つのコマンドの出力を比較し、コマンド2の出力がコマンド1から削除された後にのみ残りを表示することをお勧めします。

コマンド1の出力;

 cat /tmp/FILE001.rx 468190e5-c78b-4337-8094-20638353b4705926bbf3-c48c-4c2a-8113-d7e58520cfe73f98ee14-5e60-4e9b-852a-f924ffe80791 

コマンド2の出力(トリミング);

 cat /tmp/FILE002.rx |ヘッド-537ae6b9e-8a00-ab10-7e17-3d70ab275b9bd8208537-0d69-1332-9301-4699d194430f1cf06668-5450-4d44-a7ba-c2c7b6bcd6b27d11c6e3-48ef-0e5e-c6ed-e8f2548533fd7d3 

承認された回答:

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
 

Commのマニュアルページエントリ


Linux
  1. 異なるファイルの2つの列を比較し、一致する場合は印刷しますか?

  2. Bashシェルスクリプトで文字列を比較する方法

  3. Bash で関数を作成して呼び出す方法

  1. Bashスクリプト(I)

  2. 2つのフォルダを比較し、違いを3番目のフォルダにコピーする方法は?

  3. Bashでドット区切りバージョン形式の2つの文字列を比較するには?

  1. Bash:ファイルに書き込む

  2. Bashスクリプティング–ループが例で説明されている間とまで

  3. bash スクリプトと zsh シェルでの配列の動作 (開始インデックス 0 または 1?)