Несмотря на то, что утилиты с графическим интерфейсом гораздо удобнее в использовании и адаптированы под высокие разрешения, в терминале можно делать многие вещи гораздо быстрее. Например, утилита wc просто подсчитывает количество строк в файле.
Но само количество строк мало о чём говорит, поэтому совмещение нескольких команд позволяет считать строки с учётом требуемых параметров. Мы рассмотрим несколько примеров как подсчитать количество строк в файле linux с использованием таких команд, как grep, sed и awk.
Как узнать количество строк в файле Linux
Команду wc мы уже рассматривали, нас интересует только параметр -l. В общем случае он считает количество переходов на новую строку, поэтому учитываются все строки, в том числе пустые. С этой задачей она справится быстрее остальных команд, таких как grep, sed, awk. Но эти команды способны подсчитать строки с заданным условием.
wc -l имя_файла
grep -c $ имя_файла
sed -n \$= имя_файла
awk 'END{ print NR }' имя_файла
Как видите, результат один и тот же, только вот команда wc потратила на порядок меньше времени. Поэтому остальные команды стоит использовать для более сложных запросов. Рассмотрим несколько примеров.
Команда grep поможет найти строки только с нужным текстом:
grep -c 'текст' имя_файла
Команда grep умеет работать с регулярными выражениями и объединять условия с помощью операторов И, ИЛИ, НЕ.
Команда sed умеет обрабатывать текст, но проще всего посчитать количество результирующих строк командой wc. Например, можно удалить все строки длиной менее 3 символов, а в более сложных случаях подсчитать количество строк без комментариев.
sed -r '/^.{,3}$/d' имя_файла | wc -l
Столь простой пример можно было выполнить и другими командами. Синтаксис команды awk в этом случае гораздо понятнее.
awk 'length >3' имя_файла | wc -l
Другим примером использования команды awk может стать подсчёт строк с поиском нужного значения в табличном файле csv. В этом примере мы подсчитали количество строк, у которых значение второго параметра больше 50.
awk '$2+0 > 50' имя_файла | wc -l
Мы добавили 0 к выражению неспроста, он позволяет отсеять нечисловые выражения.
Выводы
Теперь вы знаете как посчитать количество строк в файле linux. К плюсам подсчёта количества строк с помощью консольных команд можно отнести универсальность и скорость работы. Мы рассмотрели далеко не все команды, способные подсчитать количество строк, есть tr, nl, не говоря уже о языках программирования, вроде PERL. Но имеются и существенные минусы, например, сложный синтаксис регулярных выражений, внести изменения в команду порой сложнее, чем написать её заново.
Если правильно подойти к подсчёту строк, то он может стать основой для сбора статистики и оценки файлов. Как вы могли убедиться, одну и ту же задачу можно выполнить нескольким способами, поэтому выбирайте наиболее подходящую команду.
Обожаю статьи об одной команде. Аж блевать хочется
... от твоего коммента.
Так пойди и сделай!
И не читай такие статьи!
Лечиться вам надо от таких болезней!
Статья полезная, рекомендую к использованию. Особо приятно, что используется awk
Есть ещё такой способ
find . -name "*" -print0 | xargs -0 wc -l
https://stackoverflow.com/questions/316590/how-to-count-lines-of-code-including-sub-directories