Познато је да су програми са графичким интерфејсом погоднији за коришћење, јер су дизајнирани за високе захтеве, плус терминал вам омогућава да много брже решавате одређене задатке. Тако постоји услужни програм wc, он може да броји број линија у датотеци. Број линија мало говори, али у случају када се комбинује неколико команди, можете бројати линије, узимајући у обзир потребне параметре. Како бројати линије у Линуксу? Хајде да истакнемо неколико једноставних, али ефикасних примера коришћења команди 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 изразу да бисмо уклонили све изразе који нису нумерички.