GNU/Linux >> Linux の 問題 >  >> Linux

Linuxコマンドラインでファイルの特定の行を表示する方法

Linuxコマンドラインでファイルのn行目を見つけるにはどうすればよいですか?行番号xを行番号yに表示するにはどうすればよいですか?

Linuxでは、同じ結果を達成するためのいくつかの方法があります。ファイルから特定の行を印刷することも例外ではありません。

13行目を表示するには、頭と尾を組み合わせて使用​​できます。

head -13 file_name | tail +13

または、sedコマンドを使用できます:

sed -n '13p' file.txt

20から25までの行番号を表示するには、次のようにヘッドコマンドとテールコマンドを組み合わせることができます。

head -25 file_name | tail +20

または、次のようにsedコマンドを使用できます:

sed -n '20,25p' lines.txt 

次に、各コマンドの詳細な説明を示します。この目的でのawkコマンドの使用法も示します。

ヘッドコマンドとテールコマンドを使用して特定の行を表示する

これは、選択した行を表示するための私のお気に入りの方法です。覚えやすく、使いやすいと思います。

特定の1行を印刷する

次の関数の行番号xでheadコマンドとtailコマンドを組み合わせて使用​​します。

head -x file_name | tail +x

xは、表示する行番号に置き換えることができます。したがって、ファイルの13行目を表示するとします。

[email protected]:~$ head -13 lines.txt | tail +13
This is line number 13

説明 :headコマンドが最初からファイルの行を取得し、tailコマンドが最後から行を取得することはすでにご存知でしょう。

コマンドの「head-x」部分は、ファイルの最初のx行を取得します。次に、この出力をtailコマンドにリダイレクトします。 tailコマンドは、行番号xから始まるすべての行を表示します。

明らかに、上から13行を取ると、13番から最後までの行が13行目になります。これがこのコマンドの背後にあるロジックです。

特定の範囲の行を印刷

次に、headコマンドとtailコマンドを組み合わせて、複数の行を表示してみましょう。

xからyまでのすべての行を表示するとします。これには、x行目とy行目も含まれます:

head -y lines.txt | tail +x

実際の例を見てみましょう。行番号20から25までのすべての行を印刷するとします。

[email protected]:~$ head -25 lines.txt | tail +20
This is line number 20
This is line number 21
This is line number 22
This is line number 23
This is line number 24
This is line number 25

SEDを使用して特定の行を表示する

強力なsedコマンドは、特定の行を印刷するいくつかの方法を提供します。

たとえば、10行目を表示するには、次のようにsedを使用できます。

sed -n '10p' file.txt

-nは、pコマンドが特定の行を出力している間、出力を抑制します。この詳細なSEDガイドを読んで、詳細を学び、理解してください。

行番号xから行番号yまでのすべての行を表示するには、次を使用します。

[email protected]:~$ sed -n '3,7p' lines.txt 
This is line number 3
This is line number 4
This is line number 5
This is line number 6
This is line number 7

AWKを使用してファイルから特定の行を印刷します

awkコマンドは複雑に見える可能性があり、確かに学習曲線が関係しています。しかし、sedと同様に、awkは、ファイルの内容の編集と操作に関しても非常に強力です。

[email protected]:~$ awk 'NR==5' lines.txt 
This is line number 5

NRは「現在のレコード番号」を示します。詳細については、詳細なAWKコマンドガイドをお読みください。

xからyまでのすべての行を表示するには、次の方法でawkコマンドを使用できます。

[email protected]:~$ awk 'NR>=20 && NR<=25' lines.txt 
This is line number 20
This is line number 21
This is line number 22
This is line number 23
This is line number 24
This is line number 25

ほとんどのプログラミング言語と同様の構文に従います。

この簡単な記事が、Linuxコマンドラインでファイルの特定の行を表示するのに役立つことを願っています。この目的のための他のトリックを知っている場合は、コメントセクションで他の人と共有してください。


Linux
  1. Linuxの「cat」コマンドを使用して、特定の行のみを番号で表示するにはどうすればよいですか。

  2. Linuxwcコマンド

  3. UNIX/Linux でファイルの行数を数える方法

  1. コマンドラインを使用してLinuxでtar.gzファイルを抽出する方法

  2. Linuxコマンドラインでファイルから特定の行を削除する

  3. Linuxでjar内のファイルをコマンドラインに置き換える方法は?

  1. Linux でファイルの行数を数える方法 (wc および nl コマンドの例)

  2. ファイルの途中で特定の行を表示するためのクイックunixコマンド?

  3. Linuxでテキストファイルから特定の行を表示するには?