grep

Kā es varu ignorēt tukšās rindas GREP?

Kā es varu ignorēt tukšās rindas GREP?
Greps nozīmē Globālās regulārās izteiksmes druka. Tam ir daudz funkcionalitātes, t.i.e., meklēšana failā, meklēšana tikai faila nosaukumos, grep rekursīvi utt. Grep tiek uzskatīts par spēcīgu komandu meklēšanas nozarē. Daudzos gadījumos mēs sastopamies ar situācijām, kad mums nav vajadzīgas atstarpes, vai arī ir jānovērš nevēlamas nepilnības mūsu datos. Viens no interesantākajiem grep izmantošanas veidiem ir ignorēt vai noņemt tukšās rindiņas no teksta faila. Šī procedūra tiek veikta, izmantojot dažādus piemērus. Tā ir failu rediģēšanas darbība. Lai veiktu šo mērķi, mūsu sistēmā ir jābūt esošiem failiem. Izmantojot komandu grep, mēs ļaujam tai drukāt datus bez tukšām rindām.

Sintakse

Grep [modelis] [faila nosaukums]

Pēc grep izmantošanas parādās modelis. Šis modelis nozīmē to, kā mēs vēlamies to izmantot, lai noņemtu papildu vietu datos. Pēc parauga tiek aprakstīts faila nosaukums, caur kuru tiek izpildīts modelis.

Priekšnoteikums

Lai viegli saprastu grep lietderību, mūsu sistēmā ir jābūt instalētam Ubuntu. Norādiet lietotāja informāciju, norādot lietotājvārdu un paroli, lai iegūtu privilēģijas piekļūt Linux lietojumprogrammām. Pēc pieteikšanās atveriet lietojumprogrammu un meklējiet termināli vai lietojiet īsinājumtaustiņu Ctrl + Alt + T.

Izmantojot atslēgvārdu [: blank:]

Pieņemsim, ka mums ir fails ar nosaukumu bfile ar teksta paplašinājumu. Failu var izveidot teksta redaktorā vai ar komandrindu terminālā. Lai izveidotu failu terminālā, iekļaujot šādas komandas.

$ Echo “failā ievadāms teksts”> faila nosaukums.txt

Nav nepieciešams izveidot failu, ja tas jau ir. Vienkārši parādiet to, izmantojot pievienoto komandu:

$ echo faila nosaukums.txt

Šajos failos rakstītais teksts satur atstarpes starp tām, kā redzams zemāk redzamajā attēlā.

Šīs tukšās rindas var noņemt, izmantojot tukšu komandu, lai ignorētu tukšās atstarpes starp vārdiem vai virknēm.

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

Pēc vaicājuma lietošanas tukšās atstarpes starp rindām tiks noņemtas, un izvadā vairs nebūs papildu vietas. Pirmais vārds tiek izcelts, jo tiek noņemtas atstarpes starp rindas pēdējo vārdu un nākamās rindas pirmajiem vārdiem. Mēs varam arī piemērot nosacījumus tai pašai komandai grep, pievienojot šo tukšo funkciju, lai izvades vietā noņemtu bezjēdzīgu vietu.

Izmantojot [: atstarpi:]

Šeit ir izskaidrots vēl viens kosmosa ignorēšanas piemērs.

Neminot faila paplašinājumu, vispirms parādīsim esošo failu, izmantojot komandu.

$ kaķu fails20

Apskatīsim, kā tiek noņemta papildu telpa, izmantojot komandu grep blakus atslēgvārdam [: space:]. Grepa opcija -v palīdzēs drukāt līnijas, kurās trūkst tukšu līniju un papildu atstarpes, kas ir iekļauta arī rindkopu formā.

$ grep -v '^ [[; atstarpe:]] * $' fails20

Jūs redzēsiet, ka papildu rindas tiek noņemtas un izvade ir secīgi veidota pa līnijām. Tieši tā grep -v metodika ir tik noderīga, lai iegūtu nepieciešamo mērķi.

Failu paplašinājumu pieminēšana ierobežo grep funkcionalitāti, lai tā darbotos tikai konkrētajos failu paplašinājumos, t.e., .tekstu vai .mp3. Veicot teksta faila izlīdzināšanu, mēs ņemsim fileg.txt kā faila paraugu. Pirmkārt, mēs parādīsim tajā esošo tekstu, izmantojot funkciju $ cat. Rezultāts ir šāds:

Izmantojot komandu, ir iegūts mūsu izvades fails. Šeit mēs varam redzēt datus bez atstarpēm starp secīgi rakstītajām rindām.

$ grep -v '^ [[: atstarpe:]] * $' fileg.txt

Bez garām komandām mēs varam arī izmantot īsās rakstītās komandas Linux un Unix, lai ieviestu grep atbalsta tajā rakstītās rakstzīmes.

$ grep '\ s' faila nosaukums.txt

Mēs esam redzējuši, kā tiek iegūta izeja, pielietojot komandas no ievades. Šeit mēs uzzināsim, kā ievade tiek saglabāta atpakaļ no izejas.

$ grep '\ S' faila nosaukums.txt> tmp.txt && mv tmp.txt faila nosaukums.txt

Šeit mēs izmantosim pagaidu teksta failu ar teksta paplašinājumu ar nosaukumu tmp.

Izmantojot ^ #

Tāpat kā citi aprakstītie piemēri, mēs komandu izmantosim teksta failā, izmantojot komandu cat. Mēs arī varam parādīt tekstu, izmantojot atbalss komandu.

$ echo faila nosaukums.txt

Teksta failā ir 4 rindas, atstarpes starp tām. Šīs atstarpes līnijas var viegli noņemt, izmantojot noteiktu komandu.

$ grep -Ev "^ # | ^ $" faila nosaukums

Regulāras paplašinātas darbības iespējo -E, kas ļauj izmantot visas regulārās izteiksmes, īpaši caurules. Caurule tiek izmantota kā izvēles nosacījums “vai” jebkuram modelim.”^ #”. Tas parāda teksta rindiņu atbilstību failā, kas sākas ar zīmi #. “^ $” Sakritīs ar visām brīvajām vietām tekstā vai tukšajās rindiņās.

Izeja parāda pilnīgu papildu vietas noņemšanu starp datu failā esošajām rindām. Šajā piemērā mēs redzējām, ka komandā pirmais ir “^ #”, kas nozīmē, ka pirmais tiek saskaņots ar tekstu. “^ $” Nāk pēc | operators, tāpēc pēc tam tiek saskaņota brīva vieta.

Izmantojot ^ $

Gluži tāpat kā iepriekš minētais piemērs, mums būs tādi paši rezultāti, jo komanda ir gandrīz vienāda. Tomēr modelis ir rakstīts pretēji. 22. fails.txt ir fails, kuru mēs izmantosim atstarpju noņemšanai.

$ grep -v '^ $ | ^ #' faila nosaukums

Tiek izmantota tā pati metodika, izņemot darbu ar prioritāti. Saskaņā ar šo komandu vispirms tiks saskaņotas brīvās vietas, pēc tam tiek saskaņoti teksta faili. Izeja nodrošinās līniju secību, novēršot tajās papildu atstarpes.

Citas vienkāršas komandas

Tie abi ir tik vienkārši un palīdz novērst nepilnības teksta rindiņās.

Secinājums

Bezjēdzīgu failu trūkumu novēršana ar regulāru izteiksmju palīdzību ir diezgan vienkārša pieeja, lai panāktu vienmērīgu datu secību un saglabātu konsekvenci. Piemēri ir sīki izskaidroti, lai uzlabotu informāciju par tēmu.

Kā parādīt OSD pārklājumu pilnekrāna Linux lietotnēs un spēlēs
Spēlējot pilnekrāna spēles vai lietojot lietotnes bez atrautības pilnekrāna režīmā, jūs varat izslēgt no attiecīgās sistēmas informācijas, kas redzama...
Top 5 spēļu tveršanas kartes
Mēs visi esam redzējuši un mīlējuši straumēšanas spēles pakalpojumā YouTube. PewDiePie, Jakesepticye un Markiplier ir tikai daži no labākajiem spēlētā...
Kā izstrādāt spēli Linux
Pirms desmit gadiem maz Linux lietotāju varētu paredzēt, ka viņu iecienītā operētājsistēma kādu dienu būs populāra spēļu platforma komerciālām videosp...