sed
ファイルの複数行を印刷するオネライナーがあります。
sed -n '10,20p' file.txt
上記のコードは、file.txtの10行から20行まで印刷します。
しかし、行番号をどのように印刷できますか?
ベストアンサー1
努力するawk
:
awk 'FNR==10,FNR==20 {print FNR ":" $0}' file.txt
これにより、行番号、コロン、および10〜20の範囲の行が印刷されます。
または20行目以降の読み取りを停止します。
awk 'FNR >= 10 {print FNR ":" $0}; FNR == 20 {exit}' file.txt
複数のファイルを処理し、実装がawk
このディレクティブをnextfile
サポートしている場合:
awk -v OFS=: 'FNR >= 10 {print FILENAME, FNR, $0}; FNR == 20 {nextfile}' ./*.txt
(現在のファイル名もここに印刷されます。)