(4)【tail】シェルスクリプトコマンド活用紹介

tailコマンド

  • tailコマンドでファイルの末尾部分だけを表示する
  • ログファイルを監視する
  • ファイルの特定の範囲の行を取り出す(headとtail)

概要

headコマンドとは逆に、ファイルの末尾だけ表示するのがtailコマンドです。

ログファイルは、基本ファイルの末尾に新たな記録が追加されます。
「more」コマンドや「less」コマンドで表示しようとすると、末尾まで進むのが面倒だし、ファイルが大きい場合は読み込むのにも時間がかかります。
「tail」コマンドは、ファイルの末尾開かないので手軽で処理も高速です。

$ cat <ファイル名> | tail 

tailコマンドも、headコマンド同様、「-n」オプションで表示する行数を指定することができます。

$ cat <ファイル名> | tail -n10

また、tailコマンド最大の魅力は リアルタイムに出力を追記する tail -fです。
ログ監視などに多用されるこの具体例も以下に示します。

$ sudo tail -f /var/log/httpd/access_log

tailコマンドの書式

tail [オプション] ファイル名

tailコマンドの主なオプション

短いオプション 長いオプション 意味
-c 数字 –bytes 数字 末尾の指定したバイト数のみ表示する。「-c 5 b」のように単位を付加することも可能(b=512, KB=1000, K=1024, MB=10001000, M=10241024…)
-n 数字 –lines 数字 末尾の指定した行数のみ表示する
-q –quiet, –silent ファイルごとのヘッダ表示を行わない(複数ファイル指定時に使う)
-v –verbose 常にファイルごとのヘッダ出力を行う
-f –follow ファイルを監視して内容が追加されるたびに末尾に表示する(ログ監視などに使用する。[Ctrl]+[C]キーで終了)

tailコマンド詳細説明

tailコマンドでファイルの末尾部分だけを表示する

ファイルの末尾を表示します。tail -n で表示行数を変更できます。
tail -n10 と デフォルトの tail は同じ出力となります。

$ cat filename | tail -n10

ログファイルを監視する

tailコマンドの「-f」オプションを使うと、ログファイルのように、刻々と内容が追加されていくファイル監視ができるようになります。「-f」は、ファイルなどを監視する際、内容が新たに追加されるたびに末尾に表示するオプションです。ログの監視を終了するには、[Ctrl]+[C]キーを押します。

$ sudo tail -f /var/log/httpd/error_log 
ヒント
tail -f コマンドはとてもよく使います。
tail -f を実行するtailf コマンドもあります。(Oによりますが)

ファイルの特定の範囲の行を取り出す(headとtail)

ファイル後ろの200行目のところから、ファイル先頭に向かって100行を取り出すにはどうしたらよいか?

cat filename | tail -n200

これだとファイル末尾から200行を出力するにすぎない。
tail コマンドのみに頼ろうとすると難しいようだ。
実は、head コマンドも使えば、「後ろ200行の先頭100行」を取り出せる。

$ cat filename | tail -n200 | head -n 100

コマンドの実行結果の10001行目から10100行目までが欲しい時は以下の通り。

$ cat filename | head -n10100 | tail -n100

書籍の紹介

(5)【more】シェルスクリプトコマンド活用紹介

(5)【more】シェルスクリプトコマンド活用紹介

(3)【head】シェルスクリプトコマンド活用紹介

(3)【head】シェルスクリプトコマンド活用紹介