or、&&、||をsed
使用せずに、最初の行を含むファイルの奇数行だけを印刷するbashスクリプトを作成したいと思います。awk
ベストアンサー1
そしてperl
:
$ seq 10 | perl -ne 'print if $.%2'
1
3
5
7
9
入力にタブが含まれていない場合は、次のこともできます。
$ seq 10 | paste - - | cut -f1
1
3
5
7
9
GNUの使用grep
:
$ seq 10 | grep -n '^' | LC_ALL=C grep -Po '^\d*[13579]:\K.*'
1
3
5
7
9
いずれにせよ、テキストを処理するためにシェルループを使用しないでください。先生がこのような奇妙な要求をすることを期待している場合は、悪い習慣を教えてくれる他の先生を探してください。シェルの最初の役割は、別のコマンドを実行することです。シェルスクリプタとして、あなたは仕事に最適なコマンド(hereまたはperl
)を選択したり、Unixの作者が約50年前にこれらのパイプを発明したときに意図したとおりに連携するコマンドセットを選択したいと思います。sed
awk