grep

Kuinka sivuutan tyhjät rivit Grepissä?

Kuinka sivuutan tyhjät rivit Grepissä?
Grep tarkoittaa Globaali säännöllinen lauseke. Sillä on monia toimintoja, so.e., etsiminen tiedostosta, haku vain tiedoston nimistä, grep rekursiivinen jne. Grepiä pidetään tehokkaana komentona hakusektorilla. Monissa tapauksissa kohtaamme tilanteita, joissa emme tarvitse välilyöntejä tai on tarpeen poistaa ei-toivotut aukot tiedoissamme. Yksi mielenkiintoisimmista tavoista käyttää grep-ohjelmaa on ohittaa tai poistaa tyhjät rivit tekstitiedostosta. Tämä menettely suoritetaan eri esimerkkien avulla. Se on tiedostojen muokkaustoiminto. Tätä tarkoitusta varten järjestelmässä on oltava olemassa olevia tiedostoja. Grep-komennon avulla annamme sen tulostaa tietoja ilman tyhjiä rivejä.

Syntaksi

Grep [kuvio] [tiedostonimi]

Grepin käytön jälkeen tulee kuvio. Kuvio viittaa tapaan, jolla haluamme käyttää sitä ylimääräisen tilan poistamiseen tiedoista. Kuvion jälkeen kuvataan tiedostonimi, jonka kautta kuvio suoritetaan.

Edellytys

Jotta voisimme ymmärtää grepin hyödyllisyyden helposti, meidän on asennettava Ubuntu järjestelmäämme. Anna käyttäjän tiedot antamalla käyttäjätunnus ja salasana, joilla on käyttöoikeudet käyttää Linux-sovelluksia. Kun olet kirjautunut sisään, avaa sovellus ja etsi päätelaite tai käytä pikanäppäintä ctrl + alt + T.

Käyttämällä [: blank:] avainsanaa

Oletetaan, että meillä on tiedosto nimeltä bfile, jolla on tekstilaajennus. Voit luoda tiedoston joko tekstieditorissa tai komentorivillä päätelaitteessa. Luo päätelaitteeseen tiedosto, joka sisältää seuraavat komennot.

$ Echo "tiedostoon syötettävä teksti"> tiedostonimi.txt

Tiedostoa ei tarvitse luoda, jos se on jo läsnä. Näytä se vain liitteenä olevan komennon avulla:

$ echo-tiedostonimi.txt

Näihin tiedostoihin kirjoitettu teksti sisältää välilyöntejä alla olevan kuvan mukaisesti.

Nämä tyhjät rivit voidaan poistaa tyhjällä komennolla sivuuttaakseen tyhjät välit sanojen tai merkkijonojen välillä.

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

Kyselyn soveltamisen jälkeen rivien väliset tyhjät tilat poistetaan, eikä lähtö enää sisällä ylimääräistä tilaa. Ensimmäinen sana korostetaan poistamalla välilyönnit rivin viimeisen sanan ja seuraavan rivin ensimmäisten sanojen välillä. Voimme myös soveltaa ehtoja samaan grep-komentoon lisäämällä tämän tyhjän toiminnon poistamaan turha tila lähdöstä.

Käyttämällä [: välilyönti:]

Toinen esimerkki avaruuden huomiotta jättämisestä selitetään tässä.

Mainitsematta tiedostotunnistetta, näytämme ensin olemassa olevan tiedoston komennolla.

$ kissa tiedosto20

Katsotaanpa, kuinka ylimääräinen tila poistetaan käyttämällä grep-komentoa avainsanan [: space:] lisäksi. Grepin -v -vaihtoehto auttaa tulostamaan viivoja, joista puuttuu tyhjiä viivoja ja ylimääräisiä välejä, jotka sisältyvät myös kappalemuotoon.

$ grep -v '^ [[; välilyönti:]] * $' tiedosto20

Näet, että ylimääräiset rivit poistetaan ja tulosteet on järjestetty rivijärjestyksessä. Siten grep -v-menetelmä on niin hyödyllinen vaaditun tavoitteen saavuttamisessa.

Tiedostotunnisteiden mainitseminen rajoittaa grep-toiminnallisuutta vain tietyille tiedostotunnisteille, ts.e., .teksti tai .mp3. Kun suoritamme kohdistuksen tekstitiedostoon, otamme tiedoston.txt esimerkkitiedostona. Ensin näytämme siinä olevan tekstin $ cat -toiminnon avulla. Tuotos on seuraava:

Komennoa soveltamalla saadaan tiedostomme. Täällä voimme nähdä tietoja ilman väliä rivien välillä, jotka on kirjoitettu peräkkäin.

$ grep -v '^ [[: välilyönti]] * $' tiedosto.txt

Pitkien komentojen lisäksi voimme myös käyttää lyhyitä kirjoitettuja komentoja Linuxissa ja Unixissa, jotta grep tukee lyhytmerkkejä.

$ grep '\ s' tiedostonimi.txt

Olemme nähneet, kuinka tulos saadaan käyttämällä komentoja tulosta. Täällä opimme, miten tulo ylläpidetään takaisin tuotoksesta.

$ grep '\ S' tiedostonimi.txt> tmp.txt && mv tmp.txt-tiedostonimi.txt

Tässä käytetään väliaikaista tekstitiedostoa, jonka laajennus on tmp.

Käyttämällä ^ #

Aivan kuten muutkin kuvatut esimerkit, käytämme komentoa tekstitiedostossa käyttämällä cat-komentoa. Voimme näyttää tekstiä myös kaikukomennolla.

$ echo-tiedostonimi.txt

Tekstitiedosto sisältää 4 riviä, joiden välissä on tilaa. Nämä välirivit poistetaan helposti tietyllä komennolla.

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

Säännölliset laajennetut toiminnot otetaan käyttöön -E: llä, mikä sallii kaikki säännölliset lausekkeet, erityisesti putken. Putkea käytetään valinnaisena “tai” -ehtona missä tahansa kuviossa.”^ #”. Tämä osoittaa tekstirivien vastaavuuden tiedostossa, joka alkaa merkillä #. ”^ $” Vastaa kaikkia tekstin tai tyhjien rivien vapaita paikkoja.

Tulos näyttää ylimääräisen tilan täydellisen poistamisen datatiedostossa olevien rivien välillä. Tässä esimerkissä olemme nähneet, että komennossa "^ #" tulee ensin, mikä tarkoittaa, että teksti sovitetaan ensin. "^ $" Tulee | operaattori, joten vapaa tila sovitetaan jälkeenpäin.

Käyttämällä ^ $

Aivan kuten yllä mainitussa esimerkissä, saamme samat tulokset, koska komento on melkein sama. Kuvio on kuitenkin kirjoitettu vastakkain. Tiedosto22.txt on tiedosto, jota aiomme käyttää välilyöntien poistamiseen.

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

Samaa menetelmää käytetään paitsi työskentely etusijalla. Tämän komennon mukaan ensin sovitetaan vapaat tilat ja sitten tekstitiedostot. Tulos tarjoaa rivijonon poistamalla ylimääräiset aukot niissä.

Muut yksinkertaiset komennot

Nämä molemmat ovat niin yksinkertaisia ​​ja auttavat poistamaan aukkoja tekstiriveillä.

Johtopäätös

Hyödyllisten aukkojen poistaminen tiedostoista säännöllisten lausekkeiden avulla on melko helppo tapa saavuttaa sujuva datasarja ja säilyttää yhtenäisyys. Esimerkkejä selitetään yksityiskohtaisesti, jotta saat parempia tietoja aiheesta.

Kuinka käyttää AutoKey-toimintoa Linux-pelien automatisointiin
AutoKey on työpöydän automaatioapuohjelma Linuxille ja X11: lle, ohjelmoitu Python 3, GTK ja Qt. Komentosarjojen ja MACRO-toimintojen avulla voit auto...
Kuinka näyttää FPS-laskuri Linux-peleissä
Linux-pelaaminen sai suuren työn, kun Valve ilmoitti Linux-tuesta Steam-asiakkaalle ja heidän peleilleen vuonna 2012. Siitä lähtien monet AAA- ja indi...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...