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
user1022209
quelle

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

cottonke
quelle
8
find . -name "*.java" -print0 | xargs -0 cat 
Satish
quelle
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
glenn jackman
quelle
1
find . -name "*.java" -exec cat {} \;
Danstahr
quelle
1
 grep -R -win --include='*\.java' '' * | less

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

okobaka
quelle