Как получить "wc-l" для печати только количества строк без имени файла?
wc -l file.txt
выводит количество строк и имени файла.
мне нужен только сам номер (не имя файла).
Я могу это сделать
wc -l file.txt | awk '{print }'
но, может быть, есть лучший способ?
7 ответов
cat file.txt | wc -l
по данным man page (для версии BSD у меня нет версии GNU для проверки):
если файлы не указаны, используется стандартный ввод и файл отсутствует имя отображается. Приглашение будет принимать ввод до получения EOF или [^D] в большинство сред.
как о
wc -l file.txt | cut -d' ' -f1
т. е. труба на выходе wc
на cut
(где разделителями являются пробелы и выбрать только первое поле)
очевидно, есть много решений для этого. Хотя вот еще один:
wc -l somefile | tr -d "[:alpha:][:blank:][:punct:]"
это выводит только количество строк, но завершающий символ новой строки (\n
) присутствует, если вы этого тоже не хотите, замените [:blank:]
С [:space:]
.
лучшим способом было бы в первую очередь найти все файлы в каталоге, а затем использовать AWK NR (количество записей переменной)
ниже есть команды :
find <directory path> -type f | awk 'END{print NR}'
пример:find /tmp/ -type f | awk 'END{print NR}'