我总是必须在打印的作业报告中提交源代码。我必须复制并粘贴我的课程代码进入文档,我发现这是一项令人讨厌的任务。
我想解决这个问题“复制和粘贴”问题。因此我用类似方法做了cat
,但它只在当前目录中有效。我希望它可以递归显示文件内容。
ls -R *.java | xargs cat >> all_course.txt
答案1
您可以使用find
(手册页)来实现这一点:
find -name "*.java" -exec cat {} \;
您还可以-print
在之前添加一个,以便-exec
在每次 cat 操作之前打印文件名
答案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 开关可获得更好的结果。