Awk

Awk Trim Whitespace

Awk Trim Whitespace
În calitate de programator, poate fi necesar să lucrați cu diferite fișiere pentru a stoca și manipula date. O sarcină de bază de manipulare a fișierelor implică eliminarea spațiilor albe din fișiere. Spațiile albe sunt compuse din spații, linii goale, nbsp și file. Programatorii trebuie adesea să elimine spațiile albe, astfel încât să fie stocate doar datele necesare și să fie eliminate spațiile albe inutile. Spațiile albe pot să conducă (la începutul liniei) sau să treacă (la sfârșitul liniei) spații.

Următoarele includ câteva scenarii în care ar putea fi necesară eliminarea spațiilor albe:

Este posibil să eliminați spațiile albe manual dacă un fișier care conține doar câteva linii. Dar, pentru un fișier care conține sute de linii, atunci va fi dificil să eliminați manual toate spațiile albe. Există diverse instrumente din linia de comandă disponibile în acest scop, inclusiv sed, awk, cut și tr. Printre aceste instrumente, awk este una dintre cele mai puternice comenzi.

Ce este Awk?

Awk este un limbaj de scriptare puternic și util utilizat în manipularea textului și generarea de rapoarte. Comanda awk este abreviată folosind inițialele fiecăruia dintre oamenii (Aho, Weinberger și Kernighan) care au dezvoltat-o. Awk vă permite să definiți variabile, funcții numerice, șiruri și operatori aritmetici; creați rapoarte formatate; și altele.

Acest articol explică utilizarea comenzii awk pentru tăierea spațiilor albe. După ce citiți acest articol, veți afla cum să utilizați comanda awk pentru a efectua următoarele:

Comenzile din acest articol au fost efectuate pe un Ubuntu 20.04 Sistem Focal Fossa. Cu toate acestea, aceleași comenzi pot fi efectuate și pe alte distribuții Linux. Vom folosi aplicația implicită Terminal Ubuntu pentru a rula comenzile din acest articol. Puteți accesa terminalul utilizând comanda rapidă de la tastatură Ctrl + Alt + T.

În scop demonstrativ, vom folosi fișierul eșantion numit „eșantion.txt.”Pentru a efectua exemplele prevăzute în acest articol.

Vizualizați toate spațiile albe dintr-un fișier

Pentru a vizualiza toate spațiile albe prezente într-un fișier, conduceți ieșirea comenzii cat la comanda tr, după cum urmează:

$ proba de pisica.txt | tr "" "*" | tr "\ t" "&"

Această comandă va înlocui toate spațiile albe din fișierul dat cu caracterul (*). După introducerea acestei comenzi, veți putea vedea clar unde toate spațiile albe (inclusiv atât spațiile albe principale, cât și cele finale) sunt prezente în fișier.

Caracterele * din următoarea captură de ecran arată unde toate spațiile albe sunt prezente în fișierul eșantion. Un singur * reprezintă un singur spațiu alb.

Tăiați toate spațiile albe

Pentru a elimina toate spațiile albe dintr-un fișier, introduceți comanda out of cat în comanda awk, după cum urmează:

$ proba de pisica.txt | awk 'gsub (/ /, ""); imprimare '

Unde

Comanda de mai sus înlocuiește toate spațiile albe (/ /) cu nimic („”).

În următoarea captură de ecran, puteți vedea că toate spațiile albe, inclusiv spațiile albe principale și cele finale, au fost eliminate din ieșire.

Tăiați spațiile albe principale

Pentru a elimina numai spațiile albe principale din fișier, introduceți comanda out of cat în comanda awk, după cum urmează:

$ proba de pisica.txt | awk 'sub (/ ^ [\ t] + /, ""); imprimare '

Unde

Comanda de mai sus înlocuiește unul sau mai multe spații la începutul șirului (^ [\ t] +) cu nimic („”) pentru a elimina spațiile albe principale.

În următoarea captură de ecran, puteți vedea că toate spațiile albe principale au fost eliminate din ieșire.

Puteți utiliza următoarea comandă pentru a verifica dacă comanda de mai sus a eliminat spațiile albe principale:

$ proba de pisica.txt | awk 'sub (/ ^ [\ t] + /, ""); print '| tr "" "*" |
tr "\ t" "&"

În captura de ecran de mai jos, este clar vizibil faptul că doar spațiile albe principale au fost eliminate.

Decupați spațiile albe

Pentru a elimina numai spațiile albe dintr-un fișier, introduceți comanda out of cat în comanda awk, după cum urmează:

$ proba de pisica.txt | awk 'sub (/ [\ t] + $ /, ""); imprimare '

Unde

Comanda de mai sus înlocuiește unul sau mai multe spații la sfârșitul șirului ([\ t] + $) cu nimic („”) pentru a elimina spațiile albe.

Puteți utiliza următoarea comandă pentru a verifica dacă comanda de mai sus a eliminat spațiile albe finale:

$ proba de pisica.txt | awk 'sub (/ [\ t] + $ /, ""); print '| tr "" "*" | tr "\ t" "&"

Din captura de ecran de mai jos, este clar vizibil că spațiile albe au fost eliminate.

Tăiați atât spațiile albe principale, cât și cele finale

Pentru a elimina atât spațiile albe principale, cât și cele finale dintr-un fișier, introduceți comanda out of cat în comanda awk, după cum urmează:

$ proba de pisica.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); imprimare '

Unde

Comanda de mai sus înlocuiește atât spațiul principal, cât și cel final (^ [\ t]+ [\ t] + $) fără nimic („”) pentru a le elimina.

Pentru a determina dacă comanda de mai sus a eliminat atât spațiul alb principal, cât și cel final din fișier, utilizați următoarea comandă:

$ proba de pisica.txt | awk 'gsub (/ ^ [\ t] + | [\ t] + $ /, ""); print '|
tr "" "*" | tr "\ t" "&"

Din captura de ecran de mai jos, este clar vizibil faptul că atât spațiile albe de început, cât și cele finale au fost eliminate și că rămân doar spațiile albe dintre șiruri.

Înlocuiți mai multe spații cu spațiu unic

Pentru a înlocui mai multe spații cu un singur spațiu, introduceți comanda out of cat la comanda awk, după cum urmează:

$ proba de pisica.txt | awk 'gsub (/ [] + /, ""); imprimare '

Unde:

Comanda de mai sus înlocuiește mai multe spații albe ([] +) cu un singur spațiu alb („„).

Puteți utiliza următoarea comandă pentru a verifica dacă comanda de mai sus a înlocuit spațiile multiple cu spațiile albe:

$ proba de pisica.txt | awk 'sub (/ [\ t] + $ /, ""); print '| | tr "" "*" | tr "\ t" "&"

Au existat mai multe spații în fișierul nostru eșantion. După cum puteți vedea, mai multe spații albe în eșantion.fișierul txt a fost înlocuit cu un singur spațiu alb folosind comanda awk.

Pentru a tăia spațiile albe numai în acele linii care conțin un caracter specific, cum ar fi virgulă, punct sau virgulă, utilizați comanda awk cu -F separator de intrare.

De exemplu, mai jos este prezentat exemplul nostru de fișier care conține spații albe în fiecare linie.

Pentru a elimina spațiile albe numai de pe liniile care conțin o virgulă (,), comanda va fi după cum urmează:

$ proba de pisica1.txt | awk -F, '/, / gsub (/ /, ""); imprimare'

Unde (-F,) este separatorul de câmp de intrare.

Comanda de mai sus va elimina și afișa spațiile albe numai de pe liniile care conțin caracterul specificat (,) în ele. Restul liniilor vor rămâne neafectate.

Concluzie

Asta este tot ce trebuie să știți pentru a tăia spațiile albe din datele dvs. utilizând comanda awk. Eliminarea spațiilor albe din datele dvs. poate fi necesară din mai multe motive diferite. Oricare ar fi motivul, puteți tăia cu ușurință toate spațiile albe din datele dvs. utilizând comenzile descrise în acest articol. Puteți chiar să tăiați spațiile albe inițiale sau finale, să tăiați atât spațiile albe principale, cât și cele finale și să înlocuiți spațiile multiple cu un singur spațiu cu comanda awk.

Top 10 jocuri de jucat pe Ubuntu
Platforma Windows a fost una dintre platformele dominante pentru jocuri din cauza procentului imens de jocuri care se dezvoltă astăzi pentru a sprijin...
Cele mai bune 5 jocuri arcade pentru Linux
În zilele noastre, computerele sunt mașini serioase folosite pentru jocuri. Dacă nu puteți obține noul scor mare, veți ști la ce mă refer. În această ...
Battle For Wesnoth 1.13.6 Development Released
Battle For Wesnoth 1.13.6 released last month, is the sixth development release in the 1.13.x series and it delivers a number of improvements, most no...