Wie wird der Dateiinhalt rekursiv angezeigt?


6

Ich muss die Quellcodes immer in meinem gedruckten Auftragsbericht einreichen. Ich muss meine Kurscodes kopieren und einfügen in das Dokument und ich finde, dass es eine nervige Aufgabe ist.

Ich möchte das lösen "Kopieren und Einfügen" Problem. Deshalb habe ich es mit gemacht cat so funktioniert es aber nur im aktuellen verzeichnis. Ich hoffe, es kann den Dateiinhalt rekursiv anzeigen.

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

Antworten:


13

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

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

Sie können auch eine hinzufügen -print Vor dem -exec um den Dateinamen vor jeder Katzenoperation zu drucken


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

1
Das {} \; wird nach cat nicht benötigt ... die werden nur in find's verwendet -exec Befehl.

^^ Richtig. korrigiert ...
anishsane

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

Diese all_course-Datei wird ein bisschen durcheinander sein. 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


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

Zeigt Zeile Nr. auch zum einfachen Lesen. Mit Grep-Schaltern manipulieren, um bessere Ergebnisse zu erzielen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.