Kaip suskaičiuoti "Linux" failo eilučių skaičių

26.10.2022
16:12

Žinoma, kad programomis su grafine sąsaja naudotis patogiau, nes jos pritaikytos aukštiems reikalavimams, be to, terminalas leidžia daug greičiau spręsti tam tikras užduotis. Taigi yra programa wc, ji gali suskaičiuoti failo eilučių skaičių. Eilučių skaičius nedaug ką pasako, tačiau tuo atveju, kai sujungiamos kelios komandos, galite suskaičiuoti eilutes, atsižvelgdami į reikiamus parametrus. Kaip suskaičiuoti eilutes "Linux" faile? Išskirsime keletą paprastų, bet veiksmingų grep, sed ir awk komandų naudojimo pavyzdžių.

Eilučių skaičiaus "Linux" faile nustatymas

Jau apžvelgėme WC komandą, dabar turėtume susipažinti su vienu iš pagrindinių jos parametrų -l. Jis skaičiuoja perėjimus į naują eilutę, t. y. skaičiuojama visa eilutė, įskaitant tuščias eilutes. Komanda su užduotimi susidoroja greičiau nei visos kitos, tačiau galima tik tam tikros eilutės - su tam tikra sąlyga.

$ wc -l name_file

$ grep -c $ name_file

$ sed -n $= name_file

$ awk 'END{ print NR }' name_file

Kaip suskaičiuoti

Kaip matome, rezultatas toks pat, tačiau wc komandai atlikti užduotį prireikė mažiau laiko. Kitos komandos taikytinos sudėtingoms užklausoms. Komanda grep leidžia surasti tik teksto eilutes: grep -c 'text' failo_vardas.

$ grep -c 'text' file_name

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

Komanda grep apdoroja reguliarias išraiškas, todėl galite sujungti kelias AND, OR, NOT sąlygas.

Kai sed atlieka teksto apdorojimą, tačiau daug paprasčiau atlikti galutinį eilučių skaičiavimą naudojant komandą wc. Galite ištrinti visas eilutes, kurios yra trumpesnės nei trys simboliai. o sudėtingi atvejai skaičiuojami be komentarų.

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

Kaip suskaičiuoti

Jei užduotis paprasta. ją galima atlikti kitais būdais. Awk komanda bus paprastesnė ir lengviau suprantama.

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

Kaip suskaičiuoti

Norėdami pateikti vaizdinį awk komandos pavyzdį, atlikime eilučių skaičiavimą ieškodami reikiamos reikšmės csv lentelės faile.

Pavyzdyje skaičiuokime eilutes, kurių antrojo parametro reikšmė didesnė nei 50.

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

Kaip suskaičiuoti

Norėdami pašalinti visas neskaitmenines išraiškas, prie išraiškos pridėkite 0.

15 % nuolaida naujai VPS
Paskubėkite užsisakyti serverį bet kurioje vietoje
Pasirinkite VPS

Kiti straipsniai

26.10.2022
24 956
Žinių bazė / Instrukcijos
TTL keitimas "Linux" sistemoje
26.10.2022
6 590
Žinių bazė / Instrukcijos
EXT4 registravimo išjungimas
26.10.2022
18 004
Žinių bazė / Instrukcijos
Disko defragmentavimas "Linux" sistemoje