Ir zināms, ka programmas ar grafisko interfeisu ir ērtāk lietot, jo tās ir izstrādātas atbilstoši augstām prasībām, turklāt terminālis ļauj daudz ātrāk atrisināt noteiktus uzdevumus. Tāpēc ir utilītprogramma wc, kas var saskaitīt rindu skaitu failā. Rindu skaits neko daudz neizsaka, bet gadījumā, ja ir apvienotas vairākas komandas, var saskaitīt rindas, ņemot vērā nepieciešamos parametrus. Kā saskaitīt rindas Linux failā? Izcelsim dažus vienkāršus, bet efektīvus piemērus, kā izmantot grep, sed un awk komandas.
Mēs jau apskatījām komandu WC, tagad mums jāiepazīstas ar vienu no tās galvenajiem parametriem -l
. Tas saskaita pāreju uz jaunu rindu, t. i., tiek saskaitīta visa rinda, ieskaitot tukšās rindas. Komanda ar uzdevumu tiek galā ātrāk nekā visas pārējās, taču ir iespējamas tikai noteiktas rindas - ar noteiktu nosacījumu.
$ wc -l name_file
$ grep -c $ name_file
$ sed -n $= name_file
$ awk 'END{ print NR }' name_file
Kā redzams, rezultāts ir tāds pats, bet komandai wc uzdevuma izpildei vajadzēja mazāk laika. Pārējās komandas ir piemērojamas sarežģītiem pieprasījumiem. Komanda grep ļauj atrast tikai teksta virknes: grep -c 'text' file_name
.
$ grep -c 'text' file_name
Komanda grep apstrādā regulārās izteiksmes, tāpēc var apvienot vairākus nosacījumus AND, OR, NOT.
Komanda sed veic teksta apstrādi, taču daudz vienkāršāk ir veikt galīgo rindu skaitīšanu ar komandu wc. Jūs varat dzēst visas rindas, kas ir īsākas par trim rakstzīmēm. un sarežģīti gadījumi tiek saskaitīti bez komentāriem.
$ sed -r '/^.{,3}$/d' file_name | wc -l
Ja uzdevums ir vienkāršs. to var izdarīt arī citādi. Komanda awk būs vienkāršāka un saprotamāka.
$ awk 'length >3' file_name | wc -l
Lai vizuāli parādītu awk komandas piemēru, veiksim rindu skaitīšanu, meklējot vajadzīgo vērtību csv tabulas failā.
Šajā piemērā saskaitīsim to rindu skaitu, kuru otrā parametra vērtība ir lielāka par 50.
$ awk '$2+0 > 50' file_name | wc -l
Pievienojiet izteiksmei 0, lai noņemtu visas neskaitliskās izteiksmes.