root не может получить доступ к виртуальной файловой системе? [дубликат]

Как было указано в комментариях, cat file | wc -l не эквивалентно wc -l file , потому что первый выводит только число, тогда как последний печатает число и имя файла. Аналогично cat * | wc -l выводит только число, тогда как wc -l * выводит строку информации для каждого файла.

В духе простоты давайте вернемся к фактически заданному вопросу:

если я хочу подсчитать строки кода, тривиальная вещь будет

 cat * .c * .h | wc -l 
 

Но что, если у меня несколько подкаталогов?

Во-первых, вы можете упростить даже свою тривиальную команду до:

cat *.[ch] | wc -l

И, наконец, эквивалент многих подкаталогов:

find . -name '*.[ch]' -exec cat {} + | wc -l

​​Это, возможно, можно улучшить многими способами, например, ограничивая сопоставленные файлы только обычными файлами (не каталогами), добавив -тип f , но данная команда find является точный рекурсивный эквивалент cat *. [Ch] .

0
25.11.2014, 13:13
0 ответов

Теги

Похожие вопросы