Dezvoltatorii Linux urmează filozofia de a crea programe mici care îndeplinesc o singură sarcină și o fac bine. Luați ca exemplu instrumentele de procesare a textului Linux, acestea sunt ușoare și au funcționalitate modulară. Chiar dacă aceste instrumente de manipulare a textului diferă în complexitate și funcționalitate, ele sunt utile într-un mediu în care interfața grafică cu utilizatorul nu este disponibilă.
Articolul acoperă cele mai bune instrumente Linux pentru a citi fișiere și a folosi expresii regulate pentru a efectua operațiuni pe textul selectat. De asemenea, acoperă funcționalitățile lor cele mai de bază și exemple pentru o mai bună înțelegere.
1. grep
grep este un utilitar Linux de manipulare a textului care caută un șir de caractere sau modele cunoscute sub numele de expresii regulate într-un fișier sau text. Instrumentul grep aparține familiei de utilități care includ egrep, fgrep și grep, dintre care fgrep este cel mai rapid dintre toate, în timp ce grep este cel mai ușor.
Sintaxa generală pentru utilizarea grep este următoarea:
grep -options șir nume fișier
De exemplu, pentru a căuta cuvântul „rădăcină” în fișierul /etc/passwd:
rădăcină grep /etc/passwd
Câteva exemple standard de linie de comandă pentru a începe sunt:
Opțiuni | Exemplu | Descriere |
---|---|---|
-c | grep -c |
Numărați numărul de linii în care există șirul |
-i | grep -i |
Efectuați o căutare fără majuscule pentru șirul specificat |
-o | grep -o |
Tipărește numai șirul potrivit |
-l | grep -l "passwd" | Imprimă nume de fișiere în directorul curent care se potrivesc cu modelul |
-n | grep -n |
Imprimă numărul liniei de-a lungul liniei care conține șirul specificat |
șir1|șir2 | grep „șir1|șir2” fișier | Găsiți și imprimați mai multe șiruri dintr-un fișier |
În mod similar, puteți utiliza ^ metacaracter cu comanda grep pentru a afișa toate șirurile de caractere care încep cu anumite caractere.
De exemplu, următoarea comandă transmite ieșirea comenzii env ca intrare în grep și afișează variabile care încep cu „HO":
env | grep ^HO
Legate de: Exemple practice ale comenzilor Linux Grep
2. awk
awk este un limbaj puternic de scripting și un instrument de manipulare a textului din linia de comandă care poate efectua scanări rând cu linie și poate compara liniile cu modele. Sintaxa de bază a comenzii awk este o acțiune definită între un singur ghilimele și acolade urmate de numele fișierului.
awk „{action}” nume de fișier
awk '{model; action}' nume de fișier
Utilitarul caută fișierul folosind expresii regulate și realizează funcția definită în parametrul de acțiune. awk execută scriptul pe fiecare linie dacă nu setați un model, așa cum se arată mai jos:
awk '{print $1}' awk_examples.txt
...Unde $1 afișează primul câmp al awk_examples.txt fişier.
Următoarea comandă realizează funcția de imprimare pe modelul dat, înlocuind al doilea câmp "Lume" cu "Alice," și afișează întreaga linie ($0):
ecou „Bună lume” | awk '{$2="Alice"; printeaza $0}'
Ieșire:
Bună Alice
În mod similar, puteți utiliza funcția imprimați $0 din comanda de mai sus pentru a emula grep funcţionalitate.
awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh
3. fel
sortare este un alt utilitar Linux de linie de comandă care vă ajută să afișați conținutul fișierului text specificat într-un format sortat. De exemplu, puteți canaliza ieșirea comenzii awk ca intrare în utilitarul de sortare, după cum urmează:
awk '{print $1}' awk_examples.txt | sortare > sortare_text.txt
cat sort_text.txt
Ieșire:
Legate de: Cum să sortați fișierele text în Linux folosind sortarea
4. sed
sed sau editor de flux preia intrarea ca un flux de caractere și efectuează filtrarea și transformările textului (șterge, înlocuiește și înlocuiește) pe textul specificat.
Puteți să-l utilizați într-un script și să editați fișiere în mod non-interactiv. Prin urmare, scopul cel mai de bază al utilitarului este înlocuirea șirului/caracterelor. Sintaxa generală este:
sed „s/string/substitution/option” fișier
Creați un fișier folosind propoziții aleatorii pentru a exersa și înțelege funcționarea acestui utilitar.
Să înlocuim apariția cuvântului „Două" pe fiecare linie a fișierului cu "2" folosind -g steag pentru înlocuirea globală, după cum urmează:
sed 's/two/2/g' sed_examples.txt > sed_examples2.txt
În mod similar, utilizați -d flag pentru a șterge o anumită linie din fișier:
sed '2d' sed_examples.txt
De asemenea, puteți înlocui șirul specificând un număr de linie (4 s/două/2/p) și imprimați numai linia înlocuită după cum urmează:
sed -n '4 s/two/2/p' sed_examples2.txt
The -n flag din comanda de mai sus dezactivează tipărirea automată a fluxului de intrare la ieșire. Puteți folosi această opțiune în favoarea dumneavoastră pentru a înlocui funcționalitatea utilitarului grep cu sed.
De exemplu, puteți modifica comanda de mai sus incluzând doar un model regex /two/p astfel încât -p flag va imprima numai liniile către fluxul de ieșire standard.
sed -n '/două/p' sed_examples2.txt
Legate de: Aceste 10 exemple sed vă vor face un utilizator puternic Linux
5. a tăia
Tăierea este un alt utilitar de linie de comandă care taie/extrage părți de text dintr-o linie sau fișier. Decupează textul pe baza unui câmp, caracter sau poziție de octet specificat și transmite rezultatul la ieșirea standard.
Utilitarul preia următoarea sintaxă:
a tăia fişier
Folosește -b opțiunea de a tăia secțiune sau conținut folosind un octet specificat sau un interval de octeți:
cut -b 1 cut_examples.txt
Folosește -c flag pentru a extrage text prin specificarea pozițiilor caracterelor:
cut -c 1,3,5 cut_examples.txt
În cele din urmă, puteți extrage text și prin specificarea câmpurilor cu -f opțiunea și -d pentru delimitator de spațiu sau câmp:
cut -d " " -f 1 cut_examples.txt
Iată lista intervalelor cu exemple și descrieri pe care le puteți utiliza cu personajul -c și octet -b Opțiuni:
Gamă | Exemplu | Descriere |
---|---|---|
n- | cut -c 7- nume de fișier | Extrageți caracterul de la al n-lea întreg până la sfârșitul liniei |
n-m | cut -b 7-15 nume de fișier | Extrase din întregul n-m al fiecărei linii din fișierul de intrare |
-m | cut -c -7 nume de fișier | Extrage linii începând de la m până la sfârșitul liniei |
Rețineți că nu puteți defini intervalele pentru extragerea textului utilizând câmpul -f opțiune.
Manipularea textului cu comenzi Linux
Linux oferă multe programe și instrumente pentru manipularea și lucrul în jurul fișierelor sau textului. S-ar putea să nu fie necesară învățarea lor pe toate, deoarece puteți umple cu ușurință golul cu altul odată ce aveți o strângere bună asupra unuia, cum ar fi utilizarea sed ca grep sau awk ca grep, dar acest lucru nu poate fi valabil pentru fiecare instrument.
În plus, comenzile Linux au o curbă de învățare abruptă, dar odată ce ai dezvoltat abilitățile, se pot dovedi a fi foarte utile și eficiente în viața oricărui utilizator Linux, în special a unui administrator de sistem.
V-ați săturat de vechea și plictisitoarea aplicație de terminal care vine preinstalată pe Linux? Consultați aceste opt aplicații terminale care vă vor îmbunătăți fluxul de lucru.
Citiți în continuare
- Linux
- Comenzi Linux
Rumaisa este un scriitor independent la MUO. Ea a purtat multe pălării, de la un matematician la un pasionat de securitate a informațiilor, iar acum lucrează ca analist SOC. Interesele ei includ citirea și scrierea despre noile tehnologii, distribuțiile Linux și orice despre securitatea informațiilor.
Aboneaza-te la newsletter-ul nostru
Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Click aici pentru a te abona