Wie wird der Dateiinhalt rekursiv angezeigt?

Wie wird der Dateiinhalt rekursiv angezeigt?

Die Quellcodes muss ich immer im ausgedruckten Aufgabenbericht mitliefern.Ich muss meine Kurscodes kopieren und einfügenin das Dokument und finde, dass es eine lästige Aufgabe ist.

Ich möchte dieses Problem lösen"Kopieren und Einfügen"Problem. Deshalb habe ich es catso gemacht, aber es funktioniert nur im aktuellen Verzeichnis. Ich hoffe, es kann den Dateiinhalt rekursiv anzeigen.

ls -R *.java | xargs cat >> all_course.txt

Antwort1

Sie können find(manpage) um das zu erreichen:

find -name "*.java" -exec cat {} \;

Sie können auch ein -printvor dem hinzufügen -exec, um den Dateinamen vor jedem CAT-Vorgang auszudrucken.

Antwort2

find . -name "*.java" -print0 | xargs -0 cat 

Antwort3

shopt -s globstar
cat **/*.java >> all_course.txt

Diese all_course-Datei wird ein bisschen chaotisch. Sie möchten wahrscheinlich einige Kopf- oder Fußzeilen hinzufügen:

for f in **/*.java; do
    echo "/* *********************************"
    echo " * $f"
    echo " * *********************************/"
    echo ""
    cat "$f"
    echo ""
    echo "/* *********************************"
    echo " * $f"
    echo " * *********************************/"
    echo ""
    echo ""
done > all_course.txt

Antwort4

 grep -R -win --include='*\.java' '' * | less

Zeigt zur leichteren Lesbarkeit auch die Zeilennummer an. Für bessere Ergebnisse können Sie mit Grep-Schaltern manipulieren.

verwandte Informationen