tailコマンド(ファイルの最後の部分を表示する)
形式
tail[-r][-b ブロック数|-c バイト数|-n 行数|-行数][パス名 ...]
機能
ファイルや標準入力の最後の部分を標準出力に出力します。デフォルトは標準入力です。入力のバイト単位,行単位またはブロック単位の位置から表示されます。指定した表示範囲のデータが存在しない場合でもエラーになりません。表示できるデータは表示されます。
引数
+符号のある数は入力の先頭からの位置を示します。例えば,-c +2は入力の先頭から2バイト目で表示を始めます。
-符号がある数字または符号のない数字は最後からの位置を示します。例えば,-n 2は入力の最後から2行目を示します。デフォルトは,-n 10または入力の最後の10行です。
- -r
-
行単位で逆順に表示します。
-bオプションと共に指定した場合,ファイルの終端から,-bオプションに指定したブロック数分戻った所まで,行単位にファイルの終端から出力します。表示開始位置がマルチバイト文字の中間の場合,文字化けすることがあります。
-cオプションと共に指定した場合,ファイルの終端から,-cオプションに指定したバイト数分戻った所まで,行単位にファイルの終端から出力します。表示開始位置がマルチバイト文字の中間の場合,文字化けすることがあります。
-nオプションまたは行数と共に指定した場合,ファイルの終端から,-nオプションまたは行数で指定した行数分戻った所まで,行単位にファイルの終端から出力します。
-rオプションだけ指定した場合,入力したすべての行を,行単位にファイルの終端から出力します。複数回指定してもエラーになりません。
- -b ブロック数
-
-rオプションを指定しない場合,1ブロック(512バイト)単位で表示開始位置を指定します。
符号がない場合またはマイナス(-)符号がある場合,最後からの位置を示します。プラス(+)符号がある場合,入力の先頭からの表示位置を示します。
ブロック数の指定を省略した場合は,エラーメッセージ(tail: option requires an argument - オプション)とusageが出力されます。ブロック数に数値以外を指定した場合は,エラーメッセージ(tail: illegal offset -- 指定文字列)が出力されます。
表示開始位置がマルチバイト文字の中間の場合,文字化けすることがあります。また,改行コードはバイト数にカウントされます。例えばWindowsの場合,行末が<LF>のときは1バイト,<CR><LF>のときは2バイトでカウントします。複数回指定するとusageが出力されます。
- -c バイト数
-
-rオプションを指定しない場合,バイト数で表示開始位置を指定します。
符号がない場合またはマイナス(-)符号がある場合,最後からの位置を示します。プラス(+)符号がある場合,入力の先頭からの表示位置を示します。
バイト数の指定を省略した場合は,エラーメッセージ(tail: option requires an argument - オプション)とusageが出力されます。
バイト数に数値以外を指定した場合は,エラーメッセージ(tail: illegal offset -- 指定文字列)が出力されます。
表示開始位置がマルチバイト文字の中間の場合,文字化けすることがあります。また,改行コードはバイト数にカウントされます。例えばWindowsの場合,行末が<LF>のときは1バイト,<CR><LF>のときは2バイトでカウントします。複数回指定するとusageが出力されます。
- -n 行数|-行数
-
-rオプションを指定しない場合,行単位で表示開始位置を指定します。
符号がない場合またはマイナス(-)符号がある場合,最後からの位置を示します。プラス(+)符号がある場合,入力の先頭からの表示位置を示します。
行数の指定を省略した場合は,エラーメッセージ(tail: option requires an argument - オプション)とusageが出力されます。行数に数値以外を指定した場合は,エラーメッセージ(tail: illegal offset -- 指定文字列)が出力されます。複数回指定するとusageが出力されます。
- パス名
-
入力ファイルを指定します。指定がない場合は標準入力から入力します。入力ファイルは複数指定できます。複数ファイルを指定した場合,それぞれのファイルを識別するために,次に示す文字をそれぞれのファイルの出力に先行して出力します。2つ目以降のファイルの場合,改行のあとに次に示す文字を出力します。
==> ファイル名 <==
複数ファイルを指定して実行した場合,すべてのファイルに対して処理をしたあと,オープンに失敗したファイルが1つでもあると終了コード1で終了します。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1以上 |
エラー終了 |
注意事項
-
指定した表示範囲のデータが存在しない場合,エラーになりません。表示できるデータは表示します。
-
-rオプションを指定しない場合,かつ-bオプション,-cオプション,-nオプションを指定しない場合,-nに10が指定されます。
-
Windowsの場合,ファイルおよび標準入力,標準出力をバイナリモードで入出力します。改行コードは変換しません。
使用例
-
test1.txtとtest2.txtファイルの最後の2行を表示します。
$ cat test1.txt 0001:test1.txt 0002:test1.txt 0003:test1.txt 0004:test1.txt 0005:test1.txt 0006:test1.txt 0007:test1.txt 0008:test1.txt 0009:test1.txt 0010:test1.txt $ cat test2.txt 0001:test2.txt 0002:test2.txt 0003:test2.txt 0004:test2.txt 0005:test2.txt 0006:test2.txt 0007:test2.txt 0008:test2.txt 0009:test2.txt 0010:test2.txt $ tail -n2 test1.txt test2.txt ==> test1.txt <== 0009:test1.txt 0010:test1.txt ==> test2.txt <== 0009:test2.txt 0010:test2.txt $
-
test1.txtファイルの先頭から5行目以降を表示します。
$ cat test1.txt 0001:test1.txt 0002:test1.txt 0003:test1.txt 0004:test1.txt 0005:test1.txt 0006:test1.txt 0007:test1.txt 0008:test1.txt 0009:test1.txt 0010:test1.txt $ tail -n+5 test1.txt 0005:test1.txt 0006:test1.txt 0007:test1.txt 0008:test1.txt 0009:test1.txt 0010:test1.txt $
-
-rオプションを指定した場合の例1を表示します。
$ cat zztt1.txt 1:0001:zzzz: 2:0001:aaaa: 3:0001:JJJJ: 4:0001:cccc: 5:0001:cccc: 6:0001:cccc: 7:0001:cccc: 8:0001:cccc: 9:0001:cccc: 10:0001:cccc: 11:0001:cccc: 12:0001:cccc: $ tail -r -n 2 zztt1.txt 12:0001:cccc: 11:0001:cccc: $ tail -r zztt1.txt (10行ではなく全行表示) 12:0001:cccc: 11:0001:cccc: 10:0001:cccc: 9:0001:cccc: 8:0001:cccc: 7:0001:cccc: 6:0001:cccc: 5:0001:cccc: 4:0001:cccc: 3:0001:JJJJ: 2:0001:aaaa: 1:0001:zzzz: $
-
-rオプションを指定した場合の例2を表示します。
$ cat block.txt --->1行100バイト+改行コード(\n)で101行のデータ 0000000000:1234567890123(中略)78901234567890123456789012345678T 00001xxx00:1234567890123(中略)78901234567890123456789012345678T 00002xxx00:1234567890123(中略)78901234567890123456789012345678T (中略) 00098xxx00:1234567890123(中略)78901234567890123456789012345678T 00099xxx00:1234567890123(中略)78901234567890123456789012345678T 00100xxx00:1234567890123(中略)78901234567890123456789012345678T $ tail -b 1 block.txt 45678T 00096xxx00:1234567890123(中略)78901234567890123456789012345678T 00097xxx00:1234567890123(中略)78901234567890123456789012345678T 00098xxx00:1234567890123(中略)78901234567890123456789012345678T 00099xxx00:1234567890123(中略)78901234567890123456789012345678T 00100xxx00:1234567890123(中略)78901234567890123456789012345678T $ tail -rb 1 block.txt 00100xxx00:1234567890123(中略)78901234567890123456789012345678T 00099xxx00:1234567890123(中略)78901234567890123456789012345678T 00098xxx00:1234567890123(中略)78901234567890123456789012345678T 00097xxx00:1234567890123(中略)78901234567890123456789012345678T 00096xxx00:1234567890123(中略)78901234567890123456789012345678T 45678T $ tail -c 110 block.txt 2345678T 00100xxx00:1234567890123(中略)78901234567890123456789012345678T $ tail -rc 110 block.txt 00100xxx00:1234567890123(中略)78901234567890123456789012345678T 2345678T $
-
オプションエラーのメッセージを表示します。
このメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。
C:\TEMP>%ADSH_OSCMD_DIR%\tail -z tail: illegal option -- z usage: tail [-r] [-b number | -c number | -n number | -number] [file ...]