Как рекурсивно отобразить содержимое файла?

Как рекурсивно отобразить содержимое файла?

Мне всегда приходится предоставлять исходные коды в распечатанном отчете по заданию.Мне нужно скопировать и вставить коды моих курсовв документ и нахожу, что это раздражающая задача.

Я хочу решить эту проблему."скопировать и вставить"проблема. Поэтому я сделал это с 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 для лучших результатов.

Связанный контент