Concatena os arquivos Java de uma pasta, com um cabeçalho para cada arquivo

0

Eu tenho a obrigação de fornecer um documento que contenha todos os arquivos de código-fonte, com o nome do arquivo antes de cada arquivo.

Exemplo:

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

public class Factory {
...
}

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

public class Worker {
...
}

Ele deve conter todos os arquivos * .java na pasta atual, de forma recursiva.

Como gerar facilmente esse arquivo, usando comandos comumente disponíveis ou um pequeno script?

    
por Nicolas Raoul 29.11.2013 / 09:04

2 respostas

2

Primeiro, escreva um pequeno script chamado print-with-header.sh com o conteúdo abaixo e torne-o executável:

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

Em seguida, execute:

find . -name "*.java" | xargs -L 1 ./print-with-header.sh
    
por 29.11.2013 / 09:04
2

Se você não se importa com a aparência do cabeçalho, aqui está uma maneira rápida. Primeiro execute set -o globstar em ksh93 ou shopt -s extglob no bash (ou nada em zsh). Então:

tail -n +1 **/*.java

Se você gostaria de algo mais agradável para impressão, você pode usar programas como a2ps ou enscript .

    
por 30.11.2013 / 01:38

Tags