ファイルの内容を再帰的に表示するにはどうすればよいですか?

ファイルの内容を再帰的に表示するにはどうすればよいですか?

印刷された課題レポートで常にソースコードを提出する必要があります。コースコードをコピーして貼り付ける必要があります文書に入力するのは面倒な作業だと気づきました。

これを解決したい"コピーアンドペースト"問題です。そのため、このようにしましたcatが、現在のディレクトリでのみ機能します。ファイルの内容を再帰的に表示できることを願っています。

ls -R *.java | xargs cat >> all_course.txt

答え1

findマニュアルページ) を実行するには、次の操作を実行します。

find -name "*.java" -exec cat {} \;

各cat操作の前にファイル名を印刷するために、-printの前にを追加することもできます。-exec

答え2

find . -name "*.java" -print0 | xargs -0 cat 

答え3

shopt -s globstar
cat **/*.java >> all_course.txt

all_course ファイルは少し乱雑になります。おそらく、ヘッダーやフッターを追加する必要があるでしょう。

for f in **/*.java; do
    echo "/* *********************************"
    echo " * $f"
    echo " * *********************************/"
    echo ""
    cat "$f"
    echo ""
    echo "/* *********************************"
    echo " * $f"
    echo " * *********************************/"
    echo ""
    echo ""
done > all_course.txt

答え4

 grep -R -win --include='*\.java' '' * | less

読みやすくするために行番号も表示します。より良い結果を得るには、grep スイッチで操作します。

関連情報