Mokėjimo būdai Abuse

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.