シェルワンライナー160本ノック問題159
問題159 複数のドメインのチェック
問題のファイルは
https://github.com/shellgei/shellgei160
からダウンロードできる。
cat で投げてもhostが受け取ってくれなくてどうすればいいかさっぱりわからなくなってしまった。xargsを使えばよかったわけだが、パッと出てこないものだ。hostは標準入力を受け付けてないのだろう。
解答例は
time cat sites.txt | xargs -I@ -P30 sh -c 'host @ || echo @ >> fake_sites.txt'
となる。hostは存在しないアドレスを与えられると終了ステータス1を返すことを利用してワンライナーを考えている。-Pオプションをつけて並列処理を行うことで早く処理が終わるようにもしている。