Sempre tenho que enviar os códigos-fonte em meu relatório de trabalho impresso.Tenho que copiar e colar meus códigos de cursono documento e acho que é uma tarefa chata.
Eu quero resolver isso"copiar e colar"problema. Portanto fiz assim, cat
mas só funciona no diretório atual. Espero que possa exibir o conteúdo do arquivo de forma recursiva.
ls -R *.java | xargs cat >> all_course.txt
Responder1
Você pode usar find
(página de manual) para fazer isso:
find -name "*.java" -exec cat {} \;
Você também pode adicionar um -print
antes de -exec
imprimir o nome do arquivo antes de cada operação cat
Responder2
find . -name "*.java" -print0 | xargs -0 cat
Responder3
shopt -s globstar
cat **/*.java >> all_course.txt
Esse arquivo all_course será uma bagunça. Você provavelmente deseja adicionar alguns cabeçalhos ou rodapés:
for f in **/*.java; do
echo "/* *********************************"
echo " * $f"
echo " * *********************************/"
echo ""
cat "$f"
echo ""
echo "/* *********************************"
echo " * $f"
echo " * *********************************/"
echo ""
echo ""
done > all_course.txt
Responder4
grep -R -win --include='*\.java' '' * | less
Mostrará a linha não. também, para facilitar a leitura. Manipule com opções grep para obter melhores resultados.