Известно, что программами с графическим интерфейсом удобней пользоваться, поскольку они рассчитаны на высокие требования, плюс терминал позволяет определенные задачи решать значительно быстрей. Так есть утилита wc, она может подсчитывает количество строк в файле. Число строк мало о чем говорит, а вот в случае, когда совмещается несколько команд, можно считать строки, учитывая необходимые параметры. Как подсчитать строк в файле Linux? Осветим пару простых, но эффективных примеров применения команд grep, sed и awk.
Нами уже была рассмотрена команда WC, теперь следует ознакомиться с одним из ее ключевых параметров - -l
. Он подсчитывает переходы на новую строку, то есть происходит подсчет всей строки, включая и пустые. С задачей справится команда справляется быстрей всех остальных, однако возможен только определенных строк - с заданным условием.
$ wc -l name_file
$ grep -c $ name_file
$ sed -n \$= name_file
$ awk 'END{ print NR }' name_file
Как видим, результат одинаков, но команде wc потребовалось меньше времени на выполнение поставленной задачи. Остальные команды применимы для сложных запросов. Команда grep позволяет обнаружить строки только с текстом: grep -c 'text' file_name.
$ grep -c 'text' file_name
Команда grep обращается с регулярными выражениями, поэтому можно объединить несколько условий по типу И, ИЛИ, НЕ.
Когда sed выполняет обработку текста, но намного легче выполнить подсчет числа финальных строк командой wc. Можно удалить все строки, которые имеют длину менее трех символов, а сложных случаях подсчет символов осуществляется без комментариев.
$ sed -r '/^.{,3}$/d' file_name | wc -l
Если задача простая. то ее можно выполнить и другими способами. Команда awk будет проще и понятней.
$ awk 'length >3' file_name | wc -l
Для наглядного примера работы команды awk выполним подсчёт строк, одновременно с этим осуществляя поиск необходимого значения в табличном файле csv.
В примере выполним подсчет числа строк со значением второго параметра более 50.
$ awk '$2+0 > 50' file_name | wc -l
Добавим 0 к выражению, чтобы убрать все нечисловые выражения.