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 cat
so 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 -print
vor 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.