整数の列を生成するにあたって、基本的にはseq
コマンドでことたりるのですが、欠点がないわけではありません。とりわけ__整数列の生成にあたって上限を設けたくない場合__。seq
は「上限の数までの整数列を出力する」コマンドなので、無制限にひたすら整数列を作るにはやや不向きです。たとえばseq 999999
というようにして、上限に巨大数を指定すれば、疑似的に求める機能を実現することもできますが、やや不格好な印象を受けます。
では「上限を設けずに整数列を生成し続けたい」という際にはどうすればよいのかというと、次のようなイディオムを利用することができます。
yes | awk '{print NR}'
awk
のNR
は組み込み変数で、読み込んでいる行数を保持します。つまり1行読み込むたびにNR
の値は1,2,3,4...というように増えていくわけで、これは求める整数列にほかなりません。そして「読み込むための行」をどのように生成するかですが、これはyes
コマンドを利用しているというわけです。