连接文件夹的 Java 文件,每个文件都有一个标头

连接文件夹的 Java 文件,每个文件都有一个标头

我有义务提供一份仅包含每个源代码文件的文档,并在每个文件之前加上文件名。

例子:

=============================
src/com/example/Factory.java
=============================

public class Factory {
...
}

=============================
src/com/example/Worker.java
=============================

public class Worker {
...
}

它必须递归地包含当前文件夹中的所有 *.java 文件。

如何使用常用命令或小脚本轻松生成这样的文件?

答案1

首先编写一个名为print-with-header.sh以下内​​容的小脚本,并使其可执行:

echo ""
echo "=================================================================="
echo $1
echo "=================================================================="
echo ""
cat $1

然后运行:

find . -name "*.java" | xargs -L 1 ./print-with-header.sh

答案2

如果您不介意标题的外观,这里有一个快速方法。首先set -o globstar在 ksh93 或shopt -s extglobbash 中运行(或者在 zsh 中什么都不运行)。然后:

tail -n +1 **/*.java

如果您想要更好的打印效果,您可以使用诸如a2ps或者铭刻

相关内容