grep

Kuidas ignoreerin tühje ridu Grepis?

Kuidas ignoreerin tühje ridu Grepis?
Grep tähistab Globaalse regulaaravaldise printimine. Sellel on palju funktsionaalsusi, st.e., failis otsimine, ainult faili nimede otsimine, rekursiivne grep jne. Grepi peetakse otsingu sektoris võimsaks käsuks. Paljudel juhtudel seisame silmitsi olukordadega, kus me ei vaja tühikuid või on vaja eemaldada soovimatud lüngad meie andmetes. Üks huvitavamaid viise grepi kasutamiseks on tekstifailist tühjade ridade ignoreerimine või eemaldamine. See protseduur viiakse läbi erinevate näidete abil. See on failide redigeerimise toiming. Selle eesmärgi saavutamiseks peavad meie süsteemis olema olemasolevad failid. Grep-käsu kaudu lubame tal andmeid printida ilma tühjade ridadeta.

Süntaks

Grep [muster] [failinimi]

Pärast grepi kasutamist tuleb muster. Muster viitab viisile, kuidas soovime seda kasutada lisaruumi eemaldamiseks andmetest. Pärast mustrit kirjeldatakse failinime, mille kaudu muster teostatakse.

Eelduseks

Grepi kasulikkuse hõlpsaks mõistmiseks peame oma süsteemi installima Ubuntu. Andke kasutaja üksikasjad, pakkudes kasutajanime ja parooli, et teil oleks Linuxi rakendustele juurdepääsu õigused. Pärast sisselogimist avage rakendus ja otsige terminal või rakendage kiirklahvi ctrl + alt + T.

Kasutades märksõna [: blank:]

Oletame, et meil on fail nimega bfile, millel on tekstilaiend. Faili saate luua kas tekstiredaktoris või käsureal terminalis. Terminali faili loomiseks, sealhulgas järgmised käsud.

$ Echo “faili sisestatav tekst”> failinimi.txt

Faili pole vaja luua, kui see on juba olemas. Kuvage see lihtsalt lisatud käsuga:

$ kaja failinimi.txt

Nendesse failidesse kirjutatud tekst sisaldab nende vahel tühikuid, nagu on näha alloleval joonisel.

Neid tühje ridu saab tühja käsuga eemaldada, et ignoreerida sõnade või stringide vahelisi tühje tühikuid.

$ egrep '^ [[: blank]] * [^ [: blank:] #]' bfail.txt

Pärast päringu rakendamist eemaldatakse ridade vahel tühjad ruumid ja väljund ei sisalda enam lisaruumi. Esimene sõna on esile tõstetud, eemaldades tühikud rea viimase sõna ja järgmise rea esimeste sõnade vahel. Tingimusi võime rakendada ka samale käskule grep, lisades selle tühja funktsiooni, et väljundis tühistada kasutu ruum.

Kasutades [: space:]

Siin on selgitatud veel ühte ruumi ignoreerimise näidet.

Ilma faililaiendit mainimata kuvame kõigepealt olemasoleva faili käsu abil.

kassifail $ 20

Vaatame, kuidas lisaruumi eemaldatakse, kasutades märksõna [: space:] kõrval käsku grep. Grepi suvand -v aitab printida ridu, millel puuduvad tühjad read ja lisavahe, mis sisaldub ka lõiguvormis.

$ grep -v '^ [[; tühik:]] * $' fail20

Näete, et lisaread eemaldatakse ja väljund on järjestatud rea kaupa. Nii on grep -v metoodikast nõutava eesmärgi saavutamisel nii palju abi.

Faililaiendite mainimine piirab grep-funktsionaalsust ainult teatud faililaienditel, s.t.e., .tekst või .mp3. Kui teostame tekstifaili joondamist, võtame faili.txt näidisfailina. Esiteks kuvame selles oleva teksti, kasutades funktsiooni $ cat. Väljund on järgmine:

Käsku rakendades on meie väljundfail saadud. Siin näeme andmeid järjestikuselt kirjutatud ridade vahel.

$ grep -v '^ [[: tühik:]] * $' fail.txt

Lisaks pikkadele käskudele võime ka Linuxis ja Unixis kasutada lühikesi kirjutatud käske, et grep toetaks selles lühikesi märke.

$ grep '\ s' failinimi.txt

Oleme näinud, kuidas väljund saadakse sisendist käskude rakendamisega. Siit saame teada, kuidas sisendit hoitakse väljundist tagasi.

$ grep '\ S' failinimi.txt> tmp.txt && mv tmp.txt failinimi.txt

Siin kasutame ajutist tekstifaili, mille tekstilaiend on tmp.

Kasutades ^ #

Täpselt nagu teised kirjeldatud näited, rakendame käsku tekstifailil käsu cat abil. Teksti saame kuvada ka kaja käsu abil.

$ kaja failinimi.txt

Tekstifail sisaldab 4 rida, nende vahel on ruumi. Need tühikud saab konkreetse käsu abil hõlpsasti eemaldada.

$ grep -Ev "^ # | ^ $" failinimi

Regulaarsed laiendatud toimingud lubab -E, mis võimaldab kõiki regulaaravaldisi, eriti toru. Toru kasutatakse mis tahes mustri valikulise tingimusena “või”.”^ #”. See näitab tekstiridade sobivust failis, mis algab märgiga #. „^ $” Sobib kõigi tekstis olevate tühikute või tühjade ridadega.

Väljund näitab täiendava ruumi täielikku eemaldamist andmefailis olevate ridade vahel. Selles näites oleme näinud, et käsus tuleb esikohale “^ #”, mis tähendab, et kõigepealt sobitatakse tekst. "^ $" Tuleb pärast | operaator, seega sobitatakse vaba ruum hiljem.

Kasutades funktsiooni ^ $

Täpselt nagu ülalnimetatud näites, saame ka samad tulemused, kuna käsk on peaaegu sama. Kuid muster on kirjutatud vastupidiselt. Fail22.txt on fail, mida me kasutame tühikute eemaldamisel.

$ grep -v '^ $ | ^ #' failinimi

Kasutatakse sama metoodikat, välja arvatud prioriteediga töötamine. Selle käsu järgi sobitatakse kõigepealt vabad ruumid ja seejärel tekstifailid. Väljund annab ridade järjestuse, eemaldades nendes lisavahed.

Muud lihtsad käsud

Need mõlemad on nii lihtsad ja aitavad tekstiridade lünki kõrvaldada.

Järeldus

Failides kasutute tühimike eemaldamine regulaaravaldiste abil on andmete sujuva järjestuse saavutamiseks ja järjepidevuse säilitamiseks üsna lihtne lähenemine. Näiteid selgitatakse üksikasjalikult, et teie teavet selle teema kohta paremaks muuta.

OpenTTD õpetus
OpenTTD on seal üks populaarsemaid ärisimulatsioonimänge. Selles mängus peate looma suurepärase transpordiettevõtte. Alustate siiski alguses umbes 190...
SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...
Lahing Wesnothi õpetuse eest
Battle for Wesnoth on üks populaarsemaid avatud lähtekoodiga strateegiamänge, mida saate praegu mängida. See mäng pole mitte ainult olnud väga pikka a...