指定したフォルダ内にある、多数のスクリプトファイルを1つのファイルにまとめる


お世話になります。
当方、PHPフレームワークのCakePHPの勉強をしております。
CakePHP3の参考書を読み、さらに詳しくCakePHPを勉強しようと、
CakePHP本体のコードを印刷したいと思っております。

そこで質問なのですが、
このCakePHPの指定したフォルダ内にあるPHPファイルや、テンプレートファイル、テキストファイルなどを
一つのテキストファイル(PDFなどでもOK)に
出力する方法がないかご教授いただきたく思っております。

例えば、
CakePHPフォルダのConfigフォルダ内にあるスクリプトファイルを一つのファイルにまとめられるような、ソフトやWebアプリケーションがあればと思っています。
当方の環境は、ubuntu14.04です。

どうぞ、よろしくお願い致します。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2017/06/15 01:09:47

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

Ubuntu なら、コマンドでできます。

カレントディレクトリが対象のディレクトリだとして、/tmp/all.txt に全てのファイルを吐き出すとしたらこんな感じ。

% find . -type f -print | xargs cat > /tmp/all.txt

吐き出し先のファイルもカレントディレクトリにあると、それも吐き出す対象になっちゃうので、別のディレクトリにするのが吉。
/home/a-kuma3/php/ が対象のディレクトリだとして、カレントの all.txt に吐き出すなら、こう。

% find /home/a-kuma3/php -type f -print | xargs cat > all.txt

(修正です)
ただファイルの内容だけをくっつけちゃうと、後で中を見たときに、どのファイルか分からなくなりそう。
カレントディレクトリを対象に、ファイル名をつけて /tmp/all.txt に吐き出すとしたらこんな感じ。

for f in `find . -type f -print`; do (printf "======\n$f\n"; cat $f) done > /tmp/all.txt

pr コマンドってのがあるのを思い出しました。
ファイル名付きでまとめるなら、こっちの方が良いかも。

% find . -type f -print | xargs pr > /tmp/all.txt
id:nagato-yuki

ご回答ありがとうございます!
複数の解決方法をご提示していただき、
また、参考になる解説もしていただき感謝しております。

この度は本当にありがとうございました。

2017/06/15 01:09:30

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません