Awk

Awk Trim atstarpes

Awk Trim atstarpes
Jums kā programmētājam, iespējams, būs jāstrādā ar dažādiem failiem, lai uzglabātu un manipulētu ar datiem. Viens no pamata faila manipulācijas uzdevumiem ietver atstarpju noņemšanu failos. Atstarpes veido atstarpes, tukšas rindas, nbsp un cilnes. Programmētājiem bieži ir jānoņem atstarpes, lai tiktu glabāti tikai nepieciešamie dati un tiktu likvidētas nevajadzīgas atstarpes. Atstarpes var būt vai nu vadošās (rindas sākumā), vai arī pēdējās (rindas beigās) atstarpes.

Tālāk ir ietverti daži scenāriji, kuros var būt nepieciešama atstarpju noņemšana:

Ja failā ir tikai dažas rindiņas, atstarpes var noņemt manuāli. Bet failam, kas satur simtiem līniju, būs grūti manuāli noņemt visas atstarpes. Šim nolūkam ir pieejami dažādi komandrindas rīki, tostarp sed, awk, cut un tr. Starp šiem rīkiem awk ir viena no spēcīgākajām komandām.

Kas ir Awk?

Awk ir spēcīga un noderīga skriptu valoda, ko izmanto teksta manipulācijās un ziņojumu sagatavošanā. AWK komanda ir saīsināta, izmantojot iniciāļus katram cilvēkam (Aho, Veinbergers un Kernigans), kurš to izstrādāja. Awk ļauj definēt mainīgos, skaitliskās funkcijas, virknes un aritmētiskos operatorus; izveidot formatētus pārskatus; un vēl.

Šajā rakstā ir izskaidrota komandas awk izmantošana atstarpju apgriešanai. Pēc šī raksta izlasīšanas jūs uzzināsiet, kā izmantot komandu awk, lai veiktu šādas darbības:

Šajā rakstā norādītās komandas tika veiktas ar Ubuntu 20.04 Focal Fossa sistēma. Tomēr tās pašas komandas var veikt arī citos Linux izplatījumos. Šajā rakstā esošo komandu izpildīšanai mēs izmantosim noklusējuma lietojumprogrammu Ubuntu Terminal. Jūs varat piekļūt terminālim, izmantojot īsinājumtaustiņu Ctrl + Alt + T.

Demonstrācijas nolūkos mēs izmantosim parauga failu ar nosaukumu “paraugs.txt.”, Lai veiktu šajā rakstā sniegtos piemērus.

Skatīt visas faila atstarpes

Lai skatītu visus failā esošos atstarpes, ievadiet komandas cat izvadi uz komandu tr šādi:

$ kaķu paraugs.txt | tr "" "*" | tr "\ t" "&"

Šī komanda aizstās visas atstarpes dotajā failā ar rakstzīmi (*). Pēc šīs komandas ievadīšanas jūs varēsit skaidri redzēt, kur failā atrodas visas atstarpes (ieskaitot gan vadošās, gan aizmugurējās atstarpes).

* * Rakstzīmes nākamajā ekrānuzņēmumā parāda, kur parauga failā atrodas visas atstarpes. Viens * apzīmē vienu atstarpi.

Apgrieziet visas atstarpes

Lai noņemtu visas atstarpes no faila, ievadiet komandu out of cat komandai awk šādi:

$ kaķu paraugs.txt | awk 'gsub (/ /, ""); print '

Kur

Iepriekš minētā komanda aizstāj visas atstarpes (/ /) ar neko (“”).

Nākamajā ekrānuzņēmumā varat redzēt, ka visas atstarpes, ieskaitot priekšējās un aizmugurējās atstarpes, ir noņemtas no izvades.

Apgrieziet vadošās atstarpes

Lai no faila noņemtu tikai vadošās atstarpes, ievadiet komandu out of cat komandai awk šādi:

$ kaķu paraugs.txt | awk 'sub (/ ^ [\ t] + /, ""); print '

Kur

Iepriekš minētā komanda aizstāj vienu vai vairākas atstarpes virknes sākumā (^ [\ t] +) ar neko (“”), lai noņemtu vadošās atstarpes.

Nākamajā ekrānuzņēmumā varat redzēt, ka visas vadošās atstarpes ir noņemtas no izvades.

Varat izmantot šo komandu, lai pārbaudītu, vai ar iepriekš minēto komandu ir noņemtas galvenās atstarpes:

$ kaķu paraugs.txt | awk 'sub (/ ^ [\ t] + /, ""); drukāt '| tr "" "*" |
tr "\ t" "&"

Zemāk redzamajā ekrānuzņēmumā ir skaidri redzams, ka ir noņemtas tikai galvenās atstarpes.

Apgrieziet aizmugures atstarpes

Lai no faila noņemtu tikai pēdējās atstarpes, ievadiet komandu out of cat komandai awk šādi:

$ kaķu paraugs.txt | awk 'sub (/ [\ t] + $ /, ""); print '

Kur

Iepriekš minētā komanda aizstāj vienu vai vairākas atstarpes virknes beigās ([\ t] + $) ar neko (“”), lai noņemtu pēdējās atstarpes.

Varat izmantot šo komandu, lai pārbaudītu, vai ar iepriekšminēto komandu ir noņemtas pēdējās atstarpes:

$ kaķu paraugs.txt | awk 'sub (/ [\ t] + $ /, ""); drukāt '| tr "" "*" | tr "\ t" "&"

No zemāk redzamā ekrānuzņēmuma ir skaidri redzams, ka aizmugures atstarpes ir noņemtas.

Apgrieziet gan vadošās, gan aizmugurējās atstarpes

Lai no faila noņemtu gan vadošo, gan aizmugurējo atstarpi, ievadiet komandu out of cat komandai awk šādi:

$ kaķu paraugs.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); print '

Kur

Iepriekš minētā komanda aizstāj gan sākuma, gan aizmugures atstarpes (^ [\ t]+ [\ t] + $) un nekas (“”) tos nevar noņemt.

Lai noteiktu, vai ar iepriekšminēto komandu failā ir noņemtas gan galvenās, gan aiz pēdējās atstarpes, izmantojiet šo komandu:

$ kaķu paraugs.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); drukāt '|
tr "" "*" | tr "\ t" "&"

No zemāk redzamā ekrānuzņēmuma ir skaidri redzams, ka ir noņemtas gan priekšējās, gan aizmugurējās atstarpes un paliek tikai atstarpes starp virknēm.

Nomainiet vairākas atstarpes ar vienu atstarpi

Lai aizstātu vairākas atstarpes ar vienu atstarpi, ievadiet komandu cat no cat komandai awk šādi:

$ kaķu paraugs.txt | awk 'gsub (/ [] + /, ""); print '

Kur:

Iepriekš minētā komanda aizstāj vairākas atstarpes ([] +) ar vienu atstarpi (““).

Varat izmantot šo komandu, lai pārbaudītu, vai iepriekš minētā komanda ir aizstājusi vairākas atstarpes ar atstarpēm:

$ kaķu paraugs.txt | awk 'sub (/ [\ t] + $ /, ""); drukāt '| | tr "" "*" | tr "\ t" "&"

Mūsu parauga failā bija vairākas atstarpes. Kā redzat, izlasē ir vairākas atstarpes.txt fails tika aizstāts ar vienu atstarpi, izmantojot komandu awk.

Lai apgrieztu atstarpes tikai tajās rindiņās, kurās ir noteikts raksturs, piemēram, komats, kols vai semikols, izmantojiet komandu awk ar -F ievades atdalītājs.

Piemēram, zemāk parādīts mūsu parauga fails, kurā katrā rindā ir atstarpes.

Lai noņemtu atstarpes tikai no tām rindām, kurās ir komats (,), komanda būtu šāda:

$ kaķu paraugs.txt | awk -F, '/, / gsub (/ /, ""); print '

Kur (-F,) ir ievades lauka atdalītājs.

Iepriekš minētā komanda noņems un parādīs atstarpes tikai no tām rindām, kurās tajās ir norādītais rakstzīme (,). Pārējās līnijas paliks neskartas.

Secinājums

Tas ir viss, kas jums jāzina, lai apgrieztu datos atstarpes, izmantojot komandu awk. Atstarpes atstarpes noņemšana no datiem var būt nepieciešama vairāku dažādu iemeslu dēļ. Neatkarīgi no iemesla, jūs viegli varat apgriezt visus atstarpes savos datos, izmantojot šajā rakstā aprakstītās komandas. Jūs pat varat apgriezt priekšējās vai aizmugurējās atstarpes, apgriezt gan priekšējās, gan aizmugurējās atstarpes un aizstāt vairākas atstarpes ar vienu atstarpi ar komandu awk.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Izmantojot X-Mouse Button Control, atšķirīgi mainiet peles pogas atšķirīgai programmatūrai
Varbūt jums ir nepieciešams rīks, kas varētu mainīt peles vadību ar katru lietoto lietojumprogrammu. Ja tas tā ir, varat izmēģināt lietojumprogrammu a...
Microsoft Sculpt Touch bezvadu peles apskats
Es nesen lasīju par Microsoft Sculpt Touch bezvadu pele un nolēma to nopirkt. Pēc kāda laika izmantošanas es nolēmu dalīties savā pieredzē ar to. Šo b...