私は何百ものIPアドレスからなる短いリストを持っておりfile1
、これらのIPアドレスのうち、デフォルトのリストから欠落しているアドレスがあるかどうかを確認したいと思いますfile2
。出力>両方のケースの結果を印刷するファイルにリダイレクトを見つけます。たとえば、次のようになります。
xx.xx.xx.xx missing
xx.xx.xx.xx found
6つの同様の質問を見直して多くのことを学びましたが、既存の質問のどれも私の質問に完全に答えていないので、自分で作成しました。
awk
両方を使用していくつかのアプローチを試しましたが、grep -F -f
比較結果を調整し、論理的な説明を書くのに問題があります。
6つの既存の回答を検討して多くのことを学びましたが、それらのどれも私が理解する方法で正確に私の目標を解決できませんでした。
ベストアンサー1
whileループを使用してください:
while IFS= read -r i; do
grep -Fq "$i" file && echo "$i found" || echo "$i missing"
done <ip_addresses
while
ファイルの各行を繰り返します。ip_addresses
grep -Fq
-F
任意の文字と一致しない一致を含む行を固定文字列()で検索します。この-q
フラグはgrep
何も印刷しないようにします。&& echo "$i found"
成功すると、grep
住所が見つかりました。|| echo "$i missing"
そうでなければ欠けています。