私は次のようなものが欲しいこれに関して:
cat infile | xargs -I {} -P3 curl {} -o /dev/null --silent --head --write-out "%{http_code} {}\n" > outfile
しかし、このスクリプトを使用すると(xargsを含む複数のクエリを実行するために):
for ip in `cat infile`; do
for sub in "" "www." "ftp."; do
host -t a "${sub}${ip}";
done
done | grep address | awk '{ print $4 }' > out
入力ファイル:
google.com
facebook.com
結果ファイル:
172.217.172.14
172.217.30.196
157.240.6.35
31.13.67.35
答え1
xargsを使用すると、bashを呼び出して目的の操作を実行できます。
cat infile \
| xargs -I {} -P3 bash -c 'for sub in "" "www." "ftp."; do host -t a "${sub}{}" ; done '
このコマンドの上に必要なものを追加できます。
cat infile \
| xargs -I {} -P3 bash -c 'for sub in "" "www." "ftp."; do host -t a "${sub}{}" ; done ' \
| MY_POWER_FULL_SED_OR_GREP
または、bashコマンドにgrepを追加したい場合
cat infile \
| xargs -I {} -P3 bash -c 'for sub in "" "www." "ftp."; do host -t a "${sub}{}" ; done | MY_POWER_FULL_SED_OR_GREP '