0

次のコマンドを使用して、テキスト ファイル内のドメインのリストから whois 情報を確認し、電子メールを含むすべての行を新しいファイルに出力しています。

for i in $(cat testdomains.txt); do whois $i| egrep [a-zA-Z0-9]@[a-zA-Z0-9]\.[a-zA-Z0-9]; done >> results.txt

一度に複数のドメインをチェックして、これをスピードアップする方法はありますか? たとえば、現在、あるドメインから次のドメインに情報をチェックしています。コマンドで一度に 50 個のドメインをチェックするように変更できるものはありますか?

4

1 に答える 1

2

を使用&すると、任意のコマンドをバックグラウンドで(つまり並列に)実行できます。

for i in $(< testdomains.txt); do
    whois "$i" | egrep '[a-zA-Z0-9]@[a-zA-Z0-9]\.[a-zA-Z0-9]' &
done >> results.txt

ノート

  • &たとえば、コマンドの最後に制御演算子を配置するcommand args &と、シェルはサブシェルのバックグラウンドでコマンドを実行します。シェルはコマンドが終了するのを待たず、戻りステータスは0です。最後のバックグラウンドコマンドのPidは、特別な変数を介して利用できます。$!
  • すべて&fork(2)バックグラウンドで実行します
  • いくつかの生成されたプロセスを待機するにはどうすればよいですか?を参照してください。
于 2013-03-21T21:58:28.060 に答える