今回はファイルの先頭と末尾部分の数行を表示するheadコマンドとtailコマンドについて紹介していきます。
ファイルの内容表示といえばcatコマンド等ありますが、headやtailはファイルの最初の数行を表示したいといった場合に使います。またtailはオプション-f
がありますが、これはファイルにデータが追加されればリアルタイムで表示してくれる。そのためログファイルにtail -fを行い作業エラーをリアルタイムで監視できます。
この記事でわかる事
head,tailコマンドの基本的な使い方がわかる。
オプションをあわせて利用することによりログファイルをリアルタイムで監視することができる。
目次
コマンド
headコマンド:ファイルの指定した先頭行表示する
ファイルの指定した先頭行表示するheadコマンドはテキストファイルの先頭部分を表示するのに使用します。
下記例ではデフォルト値であれる10行を表示します。
ファイルの指定した先頭行表示する
root@mitsublog:~# head headtail
1
2
3
4
5
6
7
8
9
10
root@mitsublog:~#
表示行数の指定には、-nオプションを使います。-nを指定しない場合はデフォルトは10行です。
-nオプションにより3行分表示
root@mitsublog:~# head -n 3 headtail
1
2
3
root@mitsublog:~#
ファイルの先頭から3行分が表示されています。
また、headコマンドは、他のコマンドの実行結果の先頭部分だけを表示することもできます。
この場合”|”を使います。
|を併用
root@mitsublog:~# history | head -n 3
1 ifconfig
2 ip a
3 cd /etc/network
root@mitsublog:~#
実行したコマンドの過去分を表示するhistoryコマンドの実行結果の先頭から3行分を表示しています。
書式
head [オプション] [ファイル]
headオプション
オプション | 説明 |
-n 行数 | 指定した行数だけ表示します。 |
tailコマンド:ファイル末尾部分を表示する表示する
tailコマンドは、引数で指定したファイルの内容の末尾部分だけ表示しますが、行数の指定がない場合は、末尾から10行分を表示します。
表示数の指定には、-nオプションを使います。デフォルトはhead同様に-nをつけないと10行分表示します。
ファイル末尾部分を表示する表示する
root@mitsublog:~# tail headtail
6
7
8
9
10
11
12
13
14
15
root@mitsublog:~#
上記のように、ファイル末尾から10行分が表示されました。
また、tailコマンドでも同様他のコマンドの実行結果の末尾部分だけを表示することもできます。
|を利用した末尾から10行分
root@mitsublog:~# cat headtail | tail
6
7
8
9
10
11
12
13
14
15
root@mitsublog:~#
書式
tail [オプション] [ファイル]
tailオプション
オプション | 説明 |
-f | ファイルの末尾まで表示しても終了せずに、ファイルへデータが追加されるたびに表示を更新します。主にログファイルのログ監視に使います。 |
-n 行数 | 指定した行数分表示します。 |
実行例
それでは紹介していきます。
テキストファイルの先頭部分(10行分)を表示します
テキストファイルの先頭部分(10行分)を表示します。「-n 10」オプションを利用することにより同様の結果を得られます。
テキストファイルの先頭部分(10行分)
root@mitsublog:~# head headtail
1
2
3
4
5
6
7
8
9
10
root@mitsublog:~#
テキストファイルの先頭から3行分を表示します
テキストファイルの先頭から3行分を表示します。headコマンドにオプションで「-n 3」を指定して実行します。
テキストファイルの先頭から3行分
root@mitsublog:~# head -n 3 headtail
1
2
3
root@mitsublog:~#
テキストファイルのの末尾部分(10行分)を表示します
テキストファイルのの末尾部分(10行分)を表示します。headコマンド同様「-n 10」オプションを利用することにより同様の結果を得られます。
テキストファイルのの末尾部分(10行分)
6
7
8
9
10
11
12
13
14
15
root@mitsublog:~#
テキストファイルの末尾から5行分を表示します
「tail -n 5 ファイル名」で末尾から5行分を表示します。
末尾から5行分
root@mitsublog:~# tail -5 headtail
11
12
13
14
15
root@mitsublog:~#
tail -f:tailコマンドリアルタイムでファイルを監視する
ファイルをリアルタイムで監視したい場合は「tail -f」コマンドを利用することにより監視できます。
更新前
root@mitsublog:~# tail -f headtail
6
7
8
9
10
11
12
13
14
15
別のコマンドプロンプトで「echo "16" >> headtail」
を実行するとheadtailファイルに文字が追加されます。そうすると「tail -f」コマンドで実行したheadtail ファイルがリアルタイムで更新されます。
更新後
root@mitsublog:~# tail -f headtail
6
7
8
9
10
11
12
13
14
15
16
まとめ
今回は以上となります。まとめに入ります。
まとめ
行頭、行末を指定した行を表示するにはheadやtailコマンドを利用します。
「tail -f」コマンドを利用することにより指定したファイルをリアルタイムで監視することができます。
headとtailは覚えておくと便利ですが、特にtail -fはよく使うので是非覚えていきましょう。
当メディアでは他にもLinuxに関する記事を執筆しておりますので、是非ご覧ください。