Maksājuma metodes Abuse

Kā saskaitīt rindu skaitu Linux failā

26.10.2022, 16:12

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.

Rindu skaita noteikšana Linux failā

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ā saskaitīt rindu skaitu Linux failā

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

Kā saskaitīt rindu skaitu Linux failā

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

Kā saskaitīt rindu skaitu Linux failā

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

Kā saskaitīt rindu skaitu Linux failā

Pievienojiet izteiksmei 0, lai noņemtu visas neskaitliskās izteiksmes.