How to display the file contents recursively?
You can use find
(man page) to accomplish this:
find -name "*.java" -exec cat {} \;
You can also add a -print
before the -exec
to print the file name before each cat operation
find . -name "*.java" -print0 | xargs -0 cat
shopt -s globstar
cat **/*.java >> all_course.txt
That all_course file will be a bit of a mess. You probably want to add in some headers or footers:
for f in **/*.java; do
echo "/* *********************************"
echo " * $f"
echo " * *********************************/"
echo ""
cat "$f"
echo ""
echo "/* *********************************"
echo " * $f"
echo " * *********************************/"
echo ""
echo ""
done > all_course.txt