はじめに
こんにちは!今回はtacコマンドについて解説します。
tacは、ファイルの行を逆順で表示するコマンドです。“cat"の逆ですね。「ログファイルの最後の方から見たい」「ファイルを逆順にしたい」という時に活躍します。
ログの最新エントリから確認する、ファイルの行順を反転させるなど、意外と役立つコマンドですよ。
tacコマンドとは
tacは、ファイルの内容を逆順で出力する外部コマンドです。“tac” = “cat"を逆にした造語ですね。
catがファイルの内容を最初から最後まで表示するのに対して、tacは最後の行から最初の行に向かって表示します。ログファイルの最新部分を素早く確認する時に便利です。
基本構文
|
|
ファイル名を指定しないと標準入力から読み込みます。
主なオプション
| オプション | 説明 |
|---|---|
-b |
区切り文字をセパレータの前に付ける |
-r |
REGEXを区切りとして使用 |
-s |
セパレータ(区切り文字)を指定 |
使用例
例1: ファイルを逆順で表示
|
|
実行結果:
|
|
ファイルが逆順で表示されます。
例2: ログファイルの最後から確認
|
|
実行結果:
|
|
最新のログエントリから順に確認できます。
例3: 複数ファイルを逆順で表示
|
|
実行結果:
|
|
複数ファイルを指定した場合、ファイル順は保持されます。
例4: パイプで標準入力から読み込み
|
|
実行結果:
|
|
seqコマンドの出力を逆順にします。
例5: 区切り文字を指定
|
|
実行結果:
|
|
カンマを区切り文字として処理。
例6: 段落を逆順で表示
|
|
実行結果:
|
|
空行で区切られた段落を逆順に。
例7: CSVファイルの行を逆順で表示
|
|
実行結果:
|
|
CSVファイルが逆順に(ヘッダが最後に)。
例8: 標準入力から複数行を逆順に
|
|
実行結果:
|
|
複数行を逆順にして出力。
例9: 正規表現を区切りとして使用
|
|
実行結果:
|
|
数字を区切りとして逆順に。
例10: awkと組み合わせて処理
|
|
実行結果:
|
|
ログの最新部分から失敗ログをフィルタ。
Tips・注意点
catとの違い
|
|
逆順表示という点が大きく異なります。
大きなファイルの場合
|
|
ファイル全体が必要な場合に限ってtacを使いましょう。
区切り文字のデフォルト
|
|
デフォルトは改行ですが、他の区切り文字を使う場合は指定必須。
正規表現の注意
|
|
-rフラグで正規表現が有効になります。
実践的な使い方
ログファイルの最新エラーを確認
|
|
最新のエラーログ10件をすぐに確認。
テキストファイルの最後の方を読む
|
|
最後の30行を元の順序で表示。逆順表示を挟むことで効率化。
ファイルの統計情報を逆順で確認
|
|
出力:
|
|
統計情報を逆順で表示。
コミットログを新しい順に確認
|
|
最も古いコミットから新しい順へ(逆順処理でつぎ足しを予防)。
まとめ
tacコマンドのポイント:
- ファイルの行を逆順で表示する
- catの逆の機能
- ログファイルの最新部分を素早く確認するのに便利
-s: 区切り文字を指定-r: 正規表現を区切りとして使用- 大きなファイルではパフォーマンス注意
- よく使う組み合わせ:
tac file.txt | head,tail -f log | tac
ログを最新から確認したい、ファイルを逆順にしたい、そんな時はtacをさっと使えば効率的ですよ!