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

Linuxでのテールコマンドの5つの実用例

Catコマンドは、Linuxでファイルの内容を表示するために最もよく使用されるコマンドの1つです。ただし、大きなファイルのすべての行を常に表示したい場合はありません。テールコマンドは、このようなシナリオに役立ちます。

テールコマンドとは何ですか?

tailコマンドは、その名前が示すように、単一のファイルまたは複数のファイルの最後の部分を出力します。デフォルトでは、tailコマンドは入力ファイルの最後の10行を出力します。 tailコマンドは、ログファイルをリアルタイムで読み取るためにも使用されます。

tailコマンドの構文は次のとおりです。

tail [options] [files]

LinuxでのTailコマンドの5つの実用的な例

Linuxでtailコマンドを使用する方法をいくつかの実用的な例で学びましょう。このチュートリアルでは、このテキストファイルを使用します:

The Mysterious Affair at Styles
The Secret Adversary
The Murder on the Links
The Man in the Brown Suit
The Secret of Chimneys
The Murder of Roger Ackroyd
The Big Four
The Mystery of the Blue Train
The Seven Dials Mystery
The Murder at the Vicarage
Giant's Bread
The Floating Admiral
The Sittaford Mystery
Peril at End House
Lord Edgware Dies
Murder on the Orient Express
Unfinished Portrait
Why Didn't They Ask Evans?
Three Act Tragedy
Death in the Clouds

サンプルファイルをGitHubリポジトリからダウンロードし、同時に練習しながらチュートリアルに従うことができます。

オプションなしでtailコマンドを使用すると、最後の10行が出力されます。これがtailコマンドのデフォルトの動作です。

tail agatha.txt
Giant's Bread
The Floating Admiral
The Sittaford Mystery
Peril at End House
Lord Edgware Dies
Murder on the Orient Express
Unfinished Portrait
Why Didn't They Ask Evans?
Three Act Tragedy
Death in the Clouds

ファイルの行数が10行未満の場合は、使用可能な行のみが表示されます。最後の数行が空白の場合でも、有効な行としてカウントされます。

ただし、tailコマンドのデフォルトの使用法に満足する必要はありません。それだけではありません。テールコマンドの最も一般的な使用法を1つずつ見てみましょう。

1。テールコマンドで最後のN行を印刷する

デフォルトの10行の代わりに、最後のN行を表示するには、次の方法でtailコマンドを使用できます。

tail -n N <filename>

たとえば、サンプルファイルのtailコマンドで最後の5行を表示する場合は、次のように使用できます。

tail -n 5 agatha.txt
Murder on the Orient Express
Unfinished Portrait
Why Didn't They Ask Evans?
Three Act Tragedy
Death in the Clouds

ヒント:ファイルの最後のN行を表示するには、tail-nNの代わりにtail-Nを使用することもできます。

2。行番号Nで始まるすべての行を印刷します

行番号Nから始まるすべての行を表示する場合は、ここで+オプションを使用できます。

tail -n +N <filename>

サンプルファイルでは、行番号7から始まるすべての行を表示する場合は、次のように使用できます。

tail -n +7 agatha.txt
The Big Four
The Mystery of the Blue Train
The Seven Dials Mystery
The Murder at the Vicarage
Giant's Bread
The Floating Admiral
The Sittaford Mystery
Peril at End House
Lord Edgware Dies
Murder on the Orient Express
Unfinished Portrait
Why Didn't They Ask Evans?
Three Act Tragedy
Death in the Clouds

3。 tailコマンドで複数のファイルを使用する

tailコマンドを使用すると、同時に複数のファイルを使用できます。すべての標準のtailコマンドオプションは、複数のファイルに適用できます。

tail -n N <file1> <file2> <file3>

出力はすべてのファイルに対して結合され、デフォルトでは、ファイル名は「==>」で始まる行に表示されます。

たとえば、sherlock.txtファイルとagatha.txtファイルの最後の3行を表示する場合は、次のようになります。

tail -n3 sherlock.txt agatha.txt
==> sherlock.txt <==
The Adventure of the Noble Bachelor
The Adventure of the Beryl Coronet
The Adventure of the Copper Beeches

==> agatha.txt <==
Why Didn't They Ask Evans?
Three Act Tragedy
Death in the Clouds

ヒント:オプション-qを指定したクワイエットモードを使用すると、出力からファイル名を削除できます。

4。 tailコマンドでリアルタイムにファイルを監視[ログ監視に非常に便利]

ファイルがあり、それに新しいコンテンツが追加されたとします。 tailコマンドを使用すると、ファイルに追加されたすべての新しい行を表示できます。

これには、-fオプションを使用できます。

tail -f <log-file>

このコマンドは、最初にファイルの最後の10行を表示し、次に新しい行がファイルに追加されると出力を更新します。

これは、ログファイルをリアルタイムで監視するために広く使用されています。これはおそらく、tailコマンドの最も実用的な使用法です。

ヒント:-fオプションの代わりに-Fを使用すると、tailコマンドは入力ファイルが作成されるのを待って(まだ存在しない場合)、ファイルの内容をリアルタイムで表示します。

5。パイプでのtailコマンドの使用

tailコマンドは、パイプを使用する他のコマンドと組み合わせて使用​​できます。

たとえば、ディレクトリ内のファイルが多すぎて、最後に変更された3つのファイルのみを表示したい場合は、次の方法で使用できます。

ls -ltr | tail -n3

上記のコマンドで、ls -lrtは、すべてのファイルを新しい順にリストします。次に、tailコマンドはこの出力をさらに解析し、lsコマンド出力の最後の3行のみを表示するため、最後に変更された3つのファイルのリストを取得します。

ボーナスのヒント:テールコマンドの出力を行番号で表示する

行番号は、出力の理解と分析に大いに役立ちます。ファイルの最後の20行を表示したが、ファイルの合計行を確認できるように行番号も確認したいとします。

残念ながら、tailコマンドの出力を数字で表示する組み込みのオプションはありません。

ただし、tailコマンドで行番号を表示できないわけではありません。この目的のために、あなたはパイプの力を使うことができます。前のセクションで、テールコマンドをパイプで使用できることを確認しました。ここで使ってみませんか。

nlは、ファイルの内容を行番号で表示する方法です。パイプを使用してtailコマンドと組み合わせると、tailコマンドの出力を行番号とともに表示できます。

nl <filename> | tail -3

テールコマンドの例がお役に立てば幸いです。ヘッドコマンドについても読むことをお勧めします。提案や質問がある場合は、下のコメントセクションで共有してください。


Linux
  1. 10 実用的な Linux nm コマンドの例

  2. 7 Linux df コマンドの例

  3. 8 Linux TR コマンドの例

  1. Linuxでのddコマンドの5つの実用例

  2. Linux での rm コマンドの例

  3. Linux での ps コマンドの例

  1. Linuxでのcpコマンド:7つの実用的な例

  2. Linuxシャットダウンコマンド:5つの実用的な例

  3. Linuxテールコマンドの例