Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー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オプションをつけて並列処理を行うことで早く処理が終わるようにもしている。