【Linux】catコマンドで特定のファイルを連結する

やりたいこと

日毎のログやTSVなど、特定のディレクトリに出力したファイルを連結して1つにまとめたい。

手順

catコマンドとワイルドカードを組み合わせる。

なお扱うデータ量が多いとサーバ負荷が上がるため、事前に影響を確認すること。

ファイル名の共通部分を指定する場合

ワイルドカードでファイル名を検索する。

cat {連結したいファイル名の一部}* > {出力ファイル名}

拡張子が同じ場合

cat *.{拡張子} > {出力ファイル名}

ファイル名がバラバラ

ファイルを個別に指定する。

ファイル名の誤りを防ぐために、ExcelやVScodeでコマンドを組み立てるのもあり。

cat {ファイル名1} {ファイル名2} {ファイル名3} > {出力ファイル名}

例:さくらのレンタルサーバのエラーログを結合する

過去のエラーログはgzで圧縮されており、そのままcatが使用できない。

そこで圧縮ファイルを解凍できるzcatを使用する。

zcat log/error_log_*.gz > error_log_summary.log

コメントを残す

メールアドレスが公開されることはありません。