私は何度も試みてきましたが、さまざまな方法を試しましたが、これを動作させるように見えません。私は、Pythonスクリプトを実行しようとしていると、ファイルに含まれているかどうかを確認するために出力をgrepしていない場合、私はそれをファイルに追加したい。 >>それはどちらかの標準出力をピックアップしないため動作しません - そして、stdoutとそのよう -プログラムのstdoutがファイル内にあるかどうかを確認する方法は?
$./scan_network.py 22 192.168.1.1 192.168.1.20 | if ! grep -q - ./results.log; then - >> results.log; fi
は、私はそれがのMacOSのgrepは理解していないことを理解しています。私は何をすべきか分かりません。
先に述べたように、主な目的は、スクリプトの出力をファイルと照合し、IPアドレスがファイル内に見つからない場合は追加する必要があることです。
編集:
results.logは現在空のファイルです。 scan_network.pyの出力は今のところ192.168.1.6になります。別のネットワーク上で実行すると、出力は10.234.xyの範囲の例で多数のアドレスになります。ここで、xとyは0〜255の任意の数値です。
"grepはファイルに含まれているかどうかを確認するための出力"は、grepの意味が分からないため、解析が非常に難しいです。 (私は "grep"の意味を知っていますが、明らかに同じではありません)。*あなたが "出力内の各行をチェックして、ファイル内にすでに見つかっているかどうかを確認する"という意味です。あれは正しいですか?もしそうなら、あなたの実際の問題は、 "現在ファイルに入っていないプログラムの出力にあるすべての行を見つけ、それをファイルに追加する"ことです。これは簡単に解決できますが、grepユーティリティは使用しません。 – rici
これは、@ aiを見る正しい方法です。私はps auxなどのコマンドを実行し、grepを通して配管することに慣れていますので、この方法についてどうやって行くのかは分かりませんでした。 – isema
macosでは 'grep -f/dev/stdin -q。/ results.log'を使って標準入力からパターンを読み込むことができます。 – alvits