În articolul următor vom vedea câteva instrumente din linia de comandă utilizate pentru a găsi șiruri sau modele potrivite în fișierele text. Aceste instrumente sunt utilizate în general împreună cu expresii regulate, prescurtate ca REGEX, care sunt șiruri unice pentru a descrie un model de căutare.
Expresiile regulate sunt modele utilizate pentru a găsi o anumită combinație de caractere într-un șir de text. Expresiile regulate oferă un mod foarte flexibil de căutare sau recunoaștere a șirurilor de text. Deși în rândurile următoare nu vom vedea expresii regulate, vom folosi modele sau șiruri.
Căutați șiruri sau modele de la terminal
Comanda Grep
Grep este un acronim pentru Imprimare globală a expresiei regulate. Acesta este un instrument puternic de linie de comandă, care este util atunci când căutați un șir sau un model specific într-un fișier. Cu grep vom putea folosi o gamă largă de funcții, precum cele pe care ni le-a explicat un coleg în acest blog cu ceva timp în urmă.
Sintaxa pentru utilizarea comenzii grep este destul de simplă:
grep PATRON [RUTA AL ARCHIVO]
De exemplu, pentru a căuta șirul „Ubuntu'într-un fișier pe care în acest exemplu îl vom apela text.txt, fără a lua în considerare distincția între majuscule și minuscule, într-un terminal (Ctrl + Alt + T) va trebui doar să executăm comanda:
grep -i Ubuntu texto.txt
Comandă sed
Setea este prescurtarea Editor de flux. Este un alt instrument util pentru terminal cu ajutorul căruia putem manipula textul dintr-un fișier. Sed caută, filtrează și înlocuiește șirurile într-un fișier dat.
Comanda sed imprimă implicit ieșirea în Stdout (Ieșire standard). Aceasta implică faptul că rezultatul execuției este tipărit pe terminal în loc să fie salvat într-un fișier.
Comanda Sed poate fi utilizată după cum urmează:
sed -OPCIONES COMANDO [RUTA AL ARCHIVO]
De exemplu, pentru a înlocui toate aparițiile „Linux„într-un text de”Linux', comanda de utilizat ar fi următoarea:
sed 's/Linux/GnuLinux/g' texto.txt
Dacă ceea ce căutăm este redirecționați ieșirea către un fișier în loc să îl imprimați la terminal, vom folosi semnul de redirecționare după cum urmează:
sed 's/Linux/GnuLinux/g' texto.txt > salida.txt
Ieșirea comenzii este salvată în fișier output.txt în loc să fie tipărite pe ecran.
Pentru a vedea mai multe opțiuni, puteți consultați paginile de manual:
man sed
ack
Ack este un instrument rapid de linie de comandă scris în Perl. Este considerat un înlocuitor prietenos pentru utilitarul grep, care generează și rezultate într-un mod atractiv din punct de vedere vizual.
la instalați ack în sistemul nostru va trebui să executăm în terminal (Ctrl + Alt + T):
sudo apt install ack
Comanda Ack caută în fișier sau director liniile care conțin potrivirea pentru criteriile de căutare. Apoi evidențiați șirul corespunzător. Acest instrument are capacitatea de a distinge fișierele pe baza extensiilor lor.
Sintaxa comenzii Ack ar fi ceva de genul următor
ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
De exemplu, pentru a căuta termenul Linux într-un fișier, ar trebui să executăm:
ack Linux texto.txt
Instrumentul de căutare este destul de inteligent și dacă utilizatorul nu furnizează niciun fișier sau directoare, el caută în directorul și subdirectoarele actuale modelul de căutare.
În exemplul următor, nu este furnizat niciun fișier sau director. Ack detectează automat fișierul disponibil în director și caută modelul de potrivire:
ack Linux
ripgrep
ripgrep este un utilitar multiplataforma pentru a căuta modele de expresie regulată. Este mai rapid decât toate instrumentele de căutare menționate mai sus și caută în directoare recursiv modelele potrivite. De asemenea, vă permite să căutați anumite tipuri de fișiere. În mod implicit, ripgrep va sări peste binare și fișiere / directoare ascunse.
la instalați ripgrep pe sistem, tot ce trebuie să faceți este să executați următoarea comandă în terminal (Ctrl + Alt + T):
sudo apt install ripgrep
Sintaxa pentru utilizarea ripgrep este destul de simplă:
rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Dacă am vrea să căutăm lanțulLinux'în fișiere situate în directorul curent, va trebui să executăm numai comanda:
rg Linux
Pentru a vedea mai multe opțiuni, utilizatorii pot folosi pagini de om:
man rg
Căutător de argint
la instalați acest instrumentÎn Ubuntu va trebui doar să deschidem un terminal (Ctrl + Alt + T) și să scriem comanda:
sudo apt install silversearcher-ag
Silver Searcher este un instrument de căutare open-source multiplataforma, similar cu ack, dar cu accent pe viteză. Este ușor să găsiți un șir specific în fișiere în cel mai scurt timp posibil. Sintaxa de utilizat ar fi:
ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo
De exemplu, pentru a căuta „Linux'în fișier text.txt, ar trebui să scriem în terminal (Ctrl + Alt + T):
ag Linux texto.txt
Pentru a vedea mai multe opțiuni putem consulta pagini de om:
man ag
Acestea sunt doar câteva dintre cele mai utilizate instrumente din linia de comandă pentru căutarea, filtrarea și manipularea textului în Linux.