6

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

Я хочу решить эту проблему "скопировать и вставить" . Поэтому я сделал это с помощью cat , но он работает только в текущем каталоге. Я надеюсь, что он может отображать содержимое файла рекурсивно.

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

5 ответов5

13

Вы можете использовать find (man-страницу) для этого:

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

Вы также можете добавить -print перед -exec чтобы напечатать имя файла перед каждой операцией cat

8
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
1
 grep -R -win --include='*\.java' '' * | less

Покажет строку № Кроме того, для легкого чтения. Управляйте с помощью переключателей grep для достижения лучших результатов.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .