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コマンドの使用法も示します。
これは、選択した行を表示するための私のお気に入りの方法です。覚えやすく、使いやすいと思います。
次の関数の行番号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コマンドラインでファイルの特定の行を表示するのに役立つことを願っています。この目的のための他のトリックを知っている場合は、コメントセクションで他の人と共有してください。