Мне всегда приходится предоставлять исходные коды в распечатанном отчете по заданию.Мне нужно скопировать и вставить коды моих курсовв документ и нахожу, что это раздражающая задача.
Я хочу решить эту проблему."скопировать и вставить"проблема. Поэтому я сделал это с cat
помощью этого, но это работает только в текущем каталоге. Я надеюсь, что это может отображать содержимое файла рекурсивно.
ls -R *.java | xargs cat >> all_course.txt
решение1
Вы можете использовать find
(страница руководства) для достижения этого:
find -name "*.java" -exec cat {} \;
Вы также можете добавить -print
перед , -exec
чтобы выводить имя файла перед каждой операцией cat.
решение2
find . -name "*.java" -print0 | xargs -0 cat
решение3
shopt -s globstar
cat **/*.java >> all_course.txt
Файл all_course будет немного беспорядочным. Вы, вероятно, захотите добавить несколько верхних или нижних колонтитулов:
for f in **/*.java; do
echo "/* *********************************"
echo " * $f"
echo " * *********************************/"
echo ""
cat "$f"
echo ""
echo "/* *********************************"
echo " * $f"
echo " * *********************************/"
echo ""
echo ""
done > all_course.txt
решение4
grep -R -win --include='*\.java' '' * | less
Также покажет номер строки для удобства чтения. Манипулируйте переключателями grep для лучших результатов.