Você pode usar find
( página de manual ) para fazer isso:
find -name "*.java" -exec cat {} \;
Você também pode adicionar um -print
antes do -exec
para imprimir o nome do arquivo antes de cada operação de gato
Sempre tenho que enviar os códigos-fonte em meu relatório de tarefas impressas. Eu tenho que copiar e colar meus códigos de curso no documento e acho que é uma tarefa chata.
Eu quero resolver esse problema "copiar e colar" . Portanto, eu fiz isso com cat
, mas só funciona no diretório atual. Espero que possa exibir o conteúdo do arquivo recursivamente.
ls -R *.java | xargs cat >> all_course.txt
Você pode usar find
( página de manual ) para fazer isso:
find -name "*.java" -exec cat {} \;
Você também pode adicionar um -print
antes do -exec
para imprimir o nome do arquivo antes de cada operação de gato
find . -name "*.java" -print0 | xargs -0 cat
shopt -s globstar
cat **/*.java >> all_course.txt
Esse arquivo all_course será um pouco confuso. 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
find . -name "*.java" -exec cat {} \;
grep -R -win --include='*\.java' '' * | less
mostrará a linha não. também, para facilitar a leitura. Manipule com switches grep para melhores resultados.