yoshi's blog

ハイローが熱い 情報系大学生の忘備録

ディレクトリ内の複数の.txtファイルを一つのファイルにまとめる

 

macで"1.txt"と"2.txt"と"3.txt"の中身を全部まとめた(統合した)"all.txt"ファイルを作るっていう話です。

".csv"ファイルでもできたはず。(追記:できました。)

windowsのバッチファイルのようにクリックで実行される形式にした。

 

手順は

①まとめたいファイルを一つのフォルダに入れる

②まとめるための"merge.command"ファイルを作って①と同じ場所に入れる

③"merge.command"の実行権限を設定する

④コマンドをクリックして実行→フォルダにできた"all.txt"の確認

 

 

①説明もいらないんじゃないかってレベルだけどまとめたいファイルをフォルダに入れる。

f:id:YOSHI_0:20180526105225p:plain

 

merge.commandの作成

以下をテキストエディタでもemacsででもいいからコピペして保存。

①と同じところに配置。

#!/bin/bash
MY_DIRNAME=$(dirname $0)
cd $MY_DIRNAME
cat *.txt > all.txt

 

③この状態で"merge.command"をクリックしても実行権限がないため実行できない。

 ターミナルで①のフォルダまで移動して以下を入力。実行権限を得る。

$chmod u+x merge.command

 
④フォルダから"merge.command"をダブルクリックすると"all.txt"が作成されます。
 
 
 
 
(わざわざバッチファイル的要素を付け加えずに、ターミナルで$cat *.txt > all.txt
 を実行したらまとめたファイル自体はできるんですけどね。)
(ちょっとwindowsの人に複数csvを統合するバッチファイルを送る必要があったので、ついでにmacでも試してみました。)