Siempre tengo que enviar los códigos fuente en mi informe de tarea impreso.Tengo que copiar y pegar mis códigos de curso.en el documento y encuentro que es una tarea molesta.
quiero resolver esto"copiar y pegar"problema. Por lo tanto lo hice cat
así pero solo funciona en el directorio actual. Espero que pueda mostrar el contenido del archivo de forma recursiva.
ls -R *.java | xargs cat >> all_course.txt
Respuesta1
Puedes usar find
(página de manual) para lograr esto:
find -name "*.java" -exec cat {} \;
También puede agregar un -print
antes de -exec
imprimir el nombre del archivo antes de cada operación cat.
Respuesta2
find . -name "*.java" -print0 | xargs -0 cat
Respuesta3
shopt -s globstar
cat **/*.java >> all_course.txt
Ese archivo all_course será un poco desordenado. Probablemente quieras agregar algunos encabezados o pies de página:
for f in **/*.java; do
echo "/* *********************************"
echo " * $f"
echo " * *********************************/"
echo ""
cat "$f"
echo ""
echo "/* *********************************"
echo " * $f"
echo " * *********************************/"
echo ""
echo ""
done > all_course.txt
Respuesta4
grep -R -win --include='*\.java' '' * | less
Mostrará la línea no. además, para facilitar la lectura. Manipule con interruptores grep para obtener mejores resultados.