私は人々が通常head -n | tail -n 1
シェルを使ってファイルのn行目を見つけることを知っていました。
head -7
たとえば、ファイルの7行を検索するように求められますかtail
?
答え1
head -7
または現代的で標準的なものと同等のもの:
head -n 7
入力の最初の7行(または少ない場合は最大7行)を印刷します。
パイプtail -n 1
を介して最後の行を取得するため、行数が少ない場合は、7行目または最後の行のみを取得します。
行7のみをインポートするには(または行数が少ない場合は何もインポートしません)、次のように使用できます。
tail -n +7 | head -n 1
値や行番号が大きいほど、パイプを通過するデータが少ないため、効率が高くなります。
sed
次のコマンドを使用してこれを実行することもできます。
sed '7!d;q'
sed
これは特殊化されhead
ておらずtail
、これよりも長い行を処理する必要はないため、効率が悪くなる可能性がありますが、実装によっては長すぎる行では機能しない可能性がありsed
ます。head
tail
LINE_MAX
コメントで提案されているように読み取りを中断するのではなく、7行をsed -n 7p
印刷した後も入力全体を読みます。これはあまり効率的ではありませんが、コマンド出力に適用するときのように7行を出力した後にコマンドを終了したくない場合は、これがより良い可能性があります。sed '7!d'
head