最初から始めて奇数行を印刷します。 [閉じる]

最初から始めて奇数行を印刷します。 [閉じる]

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年前にこれらのパイプを発明したときに意図したとおりに連携するコマンドセットを選択したいと思います。sedawk

おすすめ記事