2011年5月10日火曜日

テキストファイルの結合をBatとShellScriptで

いくつかのテキストファイルを、まとめて一つのファイルにする必要がありました。職場の環境は Windows なので DOS コマンドでできないものかと調べると、下記コマンドでできました。
type *.txt > newfile
rename newfile newfile.txt

type コマンドでなくても copy でもできるようだ。
ちなみに、なぜ newfile にはじめから拡張子 txt をつけていないのかというと、 *.txt 処理中に出力途中の newfile.txt も処理対象になってしまうからなのだ。
実際に処理してみると、一部ファイルが重複されて出力されてたんですよ。出力先を別のフォルダにすれば、後で rename する必要はありません。

Linux, Mac で shellscript でやると下のようになる。
#!/bin/sh
cat *.txt > newfile.txt

こちらは、出力対象ファイルが処理対象に含まれませんでした。
コマンドも色々使えると、仕事も楽になりますね。

0 件のコメント :

コメントを投稿