¿Cómo mostrar el contenido del archivo de forma recursiva?

¿Cómo mostrar el contenido del archivo de forma recursiva?

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 catasí 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 -printantes de -execimprimir 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.

información relacionada