Получить количество CSV-файлов в каталоге - PullRequest
0 голосов
/ 13 июля 2020

Я использую следующую команду, чтобы получить количество csv в каталоге

ll *.csv|wc -l

Но если нет файлов csv, он печатает

ls: cannot access *.csv: No such file or directory
0

Мне нужно сохранить это количество в переменной. Если есть 10 файлов csv, то он должен хранить 10, а если файлов csv нет, он должен хранить 0.

1 Ответ

0 голосов
/ 13 июля 2020

Это лучшее решение:

find ./ -type f -name '*.csv' | wc  -l

... следует отметить, что имена файлов, содержащие новые строки, будут искажать результаты (то же самое с ls)

Если ваш find имеет опцию -printf (например, GNU find), вы можете сделать это:

find -type f -name '*.csv' -printf '.' | wc -c

Это нормально обрабатывает имена файлов с новыми строками и может быть быстрее (см. здесь для получения дополнительной информации).

Обратите внимание, что при чтении из стандартного ввода (а не из файла, указанного в качестве аргумента), wc -l или wc -c возвращают числовые значения c, включая 0, если есть нет новой строки для wc -l или нет символов (пустая строка) для wc -c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...