Начини на плащане Abuse

Как да преброим броя на редовете във файл на Linux

26.10.2022, 16:12

Известно е, че програмите с графичен интерфейс са по-удобни за използване, тъй като са проектирани за високи изисквания, а освен това терминалът ви позволява да решавате определени задачи много по-бързо. Така например има помощна програма wc, която може да преброи броя на редовете в даден файл. Броят на редовете не говори много, но в случай че се комбинират няколко команди, можете да преброите редовете, като вземете предвид необходимите параметри. Как да преброим редовете във файл в Linux? Нека разгледаме няколко прости, но ефективни примера за използване на командите grep, sed и awk.

Намиране на броя на редовете във файл на Linux

Вече разгледахме командата WC, а сега трябва да се запознаем с един от ключовите ѝ параметри -l. Той отчита преходите към нов ред, т.е. брои се целият ред, включително празните редове. Командата се справя със задачата по-бързо от всички останали, но са възможни само определени редове - с дадено условие.

$ wc -l name_file

$ grep -c $ name_file

$ sed -n $= name_file

$ awk 'END{ print NR }' name_file

Как да преброим броя на редовете във файл на Linux

Както виждаме, резултатът е същият, но командата wc е отнела по-малко време за изпълнение на задачата. Останалите команди са приложими за сложни заявки. Командата grep ви позволява да намирате низове само с текст: grep -c 'text' file_name.

$ grep -c 'text' file_name

Как читать строки

Командата grep работи с регулярни изрази, така че можете да комбинирате няколко условия AND, OR, NOT.

При sed се извършва обработка на текст, но е много по-лесно да се извърши окончателно преброяване на редовете с командата wc. Можете да изтриете всички редове, които са с дължина по-малка от три символа. и сложните случаи се броят без коментари.

$ sed -r '/^.{,3}$/d' file_name | wc -l

Как да преброим броя на редовете във файл на Linux

Ако задачата е проста. тя може да бъде изпълнена по други начини. Командата awk ще бъде по-проста и по-лесна за разбиране.

$ awk 'length >3' file_name | wc -l

Как да преброим броя на редовете във файл на Linux

За нагледен пример на командата awk, нека извършим преброяване на низове, докато търсим необходимата стойност във файл с таблица csv.

В примера нека преброим броя на редовете със стойност на втория параметър по-голяма от 50.

$ awk '$2+0 > 50' file_name | wc -l

Как да преброим броя на редовете във файл на Linux

Добавете 0 към израза, за да премахнете всички нецифрови изрази.