はじめに
どうも、さいほうへいきです。Motchiyってなんだっけ……?
今回は、ZIPファイル内にあるテキストファイルを、解凍せずにひとつのファイルへまとめるコマンドを紹介していきます!
複数のテキストファイルをひとつにまとめたいことって、意外とあるんですよね。ログをまとめて確認したいとか、文章をまとめて検索したいとか。まあ僕が使った時は他の用途だったんですけども。
とはいえ、わざわざZIPファイルを解凍して、それから結合するのも面倒です。
というわけで、今回はそんな手間を省くコマンドを紹介していきます!
コマンド
こちらが今回紹介するコマンドで~す! ジャジャーン。
unzip -p archive.zip "*.txt" > combined.txt
これだけ。簡単ですね!
archive.zipには対象のZIPファイル名を、combined.txtには結合後のテキストファイル名を指定してください。
実行すると、ZIPファイル内にある.txtファイルの内容が順番に出力され、ひとつのテキストファイルにまとめられます。
もちろん、ZIPファイル自体が書き換えられることはありません。
コマンドの解説
さて、たった一行で済んでしまいましたが、せっかくなので簡単に仕組みを解説していきます!
unzip -p archive.zip "*.txt"
unzipは、ZIP形式の圧縮ファイルを扱うコマンドです。
その後ろにある-pは、指定したファイルの内容を標準出力へ出力するためのオプションです。
つまり、通常のようにファイルをディスク上へ解凍するのではなく、ファイルの中身を直接取り出しているわけですね。
そして、"*.txt"は対象となるファイル名のパターンです。これによって、拡張子が.txtのファイルを指定しています。もし.mdとかその他があれば適宜書き換えてください。
ちなみに、ダブルクォーテーションで囲んでいるのは、シェルが*を現在のディレクトリにあるファイル名へ展開してしまうのを防ぐためです。
> combined.txt
最後の>は、コマンドの出力をファイルへ書き込むためのものです。
今回の場合、unzip -pが出力したテキストをcombined.txtに保存しています。ファイル名はお好きにどうぞ。
他のコマンドでもunzipでも、実行結果を標準出力にそのまま吐き出すということがかなりあるので、このあたりは少し理解をしておいた方がよさげです。
なお、すでに同じ名前のファイルが存在する場合、その内容は上書きされます。既存のファイルへ追記したい場合はかわりに>>を使用するように。どちらにせよ、ちゃんと事前に確認やバックアップは取っておくようにしましょう。マジで。
まとめ
というわけで、今回はZIPファイル内のテキストを解凍せずに一括結合するコマンドを紹介しました!
単純にテキストをまとめたい場合には便利な方法なので、ぜひ活用してみてください!
では、今回はここまで。また次の記事でもお会いしましょう!
さいほうへいきでした~。