私の最初の記事は、これがどうなるか見てみましょう。bashの排他的な配列
私は複数の「ホストリスト」がある問題に取り組んでいます。 1つはLinux用、1つはWindows用、もう1つはプリンタ用です。
また、現在監視されているもののリストもあります。
私はいくつかのコードを試して、ホストリストを統合し、そのリストと現在の監視リストとの差分を取得しようとしています。
私は私がここにあるいくつかの良いコードが見つかりました:ARRAY3が理想的であるべき
Array1=("key1" "key2" "key3" "key4" "key5" "key6" "key7" "key8" "key9" "key10")
Array2=("key1" "key2" "key3" "key4" "key5" "key6")
Array3 =diff(Array1, Array2)
を: ARRAY3 =( "key7が" "key8" "key9" "key10")
これは私を与えます追加が必要なもののリストと信じられないほどうまく機能します。
は、配列2は、その値だった「key11」
私は同じ差分を使用している場合は、私が以前の値とkey11のすべてを取得する要素が含まれていることを前提とします。
Array1=("key1" "key2" "key3" "key4" "key5" "key6" "key7" "key8" "key9" "key10")
Array2=("key1" "key2" "key3" "key4" "key5" "key6" "key11")
Array3 =diff(Array1, Array2)
これは キー11 key10を出力.....
私は2つのことを行う必要があると思います:
すべてのもののリスト1 = 2ではなくということ!すべてのものの2!= 1
リストその2!= 1ではなく1!= 2
私はこれらのコンテンツが私が制御しないCSVからいっぱいであり、各ホストリストの命名規則が変わるということは、配列の順序/数/等が未知の。 どうすればいいですか?私はこのコードだけでなく、ロジックを見ることができます。どんな援助も大いに感謝しています。この週末、私を苦しめることから救ってください。
'Array3 = diff(Array1、Array2)'とは何ですか?それは間違いなくbashではないからです。答えの1つではなく、質問[here](http://stackoverflow.com/questions/2312762/compare-difference-of-two-arrays-in-bash/2315541)からコードをコピーしましたか? – 123
bashが必要な理由はありますか?このように、 'set'をサポートする言語で達成するのは簡単かもしれません。たとえば、Pythonで 'set(Array1)-set(Array2)'を実行するだけです。 – 0x5453
キーの各リストを別々のファイルに入れている場合(またはそうすることができる場合)、これは 'comm 1) 'コマンド。詳細なマニュアルを読んでください。 – Jens