Bash посчитать количество строк

у меня есть var, в котором хранится строка, и нужно проверить, есть ли в ней строки:

вот моя идея о том, как проверить, echo $var | wc -l не работает, он всегда говорит 1, хотя у него есть 3

echo -e не работает

5 ответов

котировки имеют значение.

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

другой способ использования здесь строки в bash:

Как говорится в комментарий пустой $var приведет к 1 строке вместо 0 строк, потому что здесь строки в этом случае добавьте символ новой строки (объяснение).

вы можете заменить " wc-l "на" wc-w", чтобы подсчитать количество слов вместо строк. Это не будет считать новые строки и может использоваться для проверки, если исходные результаты пусты, прежде чем продолжить.

верхние проголосовавшие ответы терпят неудачу, если никакие результаты не были возвращены grep.

там скажут нам, есть 1 Виггам в списке, даже если их нет.

вместо этого, вам нужно сделать одну дополнительную проверку, чтобы увидеть, если переменная пустая ( -z , как и в "ноль"). Если grep ничего не вернул, переменная будет пустой.

Часто нужно подсчитать количество файлов при выводе в консоли BASH. Хорошо если файлов 10 штук. Как быть если их сотни и у каждого файла сложное имя. Тут идеально подойдёт команда wc. Её лучше использовать вместе с фильтром. Например с командой grep команда wc хорошо сочетается. Можно подсчитать количество слов в документе. Это редко используют.

При выводе в командной строке очень часто попадают файлы с точками вместо имён .. или . .Тут нужно отфильтровать вывод и только потом применять команду wc.

Читайте также:  Федеральная налоговая служба как узнать свой инн

Как подсчитать количество файлов в директории. Тут добавлена сортировка и удаление дублей. uniq – убирает дубли, перед unic должна идти сортировка sort

Удобно сочетать команду ls и wc. Подробнее о утилите ls написано в статье как вывести файлы директории в консоли при помощи ls BASH.

Требуется посчитать суммарное количество строк в файлах txt , лежащих в каталоге, имя которого задано параметром сценария.

Что сделать, чтоб оно заработало?

2 ответа 2

если уж используете shebang, то его синтаксис не предусматривает пробелов в этом месте.

а скрипт может выглядеть примерно так:

или, если требуется сохранить (и потом напечатать) количество строк в переменной:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector