Как получить "wc-l" для печати только количества строк без имени файла?


wc -l file.txt

выводит количество строк и имени файла.

мне нужен только сам номер (не имя файла).

Я могу это сделать

 wc -l file.txt | awk '{print }'

но, может быть, есть лучший способ?

7 90

7 ответов:

попробуйте так:

wc -l < file.txt
cat file.txt | wc -l

по данным на странице (для версии BSD у меня нет версии GNU для проверки):

если файлы не указаны, используется стандартный ввод и файл отсутствует имя отображается. Приглашение будет принимать ввод до получения EOF, или [^D] in большинство сред.

как о

wc -l file.txt | cut -d' ' -f1

т. е. труба на выходе wc на cut (где разделителями являются пробелы и выбрать только первое поле)

чтобы сделать это без ведущего пространства, почему бы и нет:

wc -l < file.txt | bc

как о

grep -ch "^" file.txt

очевидно, есть много решений для этого. Хотя вот еще один:

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}'