En el següent article anem a veure algunes eines de línia de comandaments que s'utilitzen per buscar cadenes o patrons coincidents dins d'arxius de text. Aquestes eines s'utilitzen generalment juntament amb les expressions regulars, abreujades com regex, Que són cadenes úniques per a descriure un patró de cerca.
Les expressions regulars són patrons utilitzats per trobar una determinada combinació de caràcters dins d'una cadena de text. Les expressions regulars proporcionen una manera molt flexible de cercar o reconèixer cadenes de text. Tot i que en les següents línies no veurem expressions regulars, utilitzarem patrons o cadenes.
Cerca cadenes o patrons des de la terminal
comando Grep
Grep és un acrònim de Impressió d'expressió regular global. Es tracta d'una poderosa eina per a la línia de comandes que resulta útil quan es busca una cadena específica o un patró en un arxiu. amb grep podrem utilitzar una àmplia gamma de funcions, com les que ens va explicar en aquest mateix blog un company fa un temps.
La sintaxi a utilitzar la comanda grep és bastant simple:
grep PATRON [RUTA AL ARCHIVO]
Per exemple, per buscar la cadena 'Ubuntu'En un arxiu que en aquest exemple anomenarem text.txt, Sense tenir en compte la distinció entre majúscules i minúscules, en una terminal (Ctrl + Alt + T) només haurem d'executar la comanda:
grep -i Ubuntu texto.txt
comando set
Sigueu és l'abreviatura de Editor de fluxos. Es tracta d'una altra eina útil per a la terminal amb la qual podrem manipular text en un arxiu. Sigueu busca, filtra i reemplaça cadenes en un arxiu donat.
La comanda set imprimeix per defecte la sortida en sortida estàndard (Sortida estàndard). Això implica que el resultat de l'execució s'imprimeix al terminal en lloc de guardar-se en un arxiu.
La comanda Sigueu es pot utilitzar de la següent manera:
sed -OPCIONES COMANDO [RUTA AL ARCHIVO]
Per exemple, per a substituir totes les aparicions de 'Linux'En un text per'GnuLinux', La comanda a utilitzar seria el següent:
sed 's/Linux/GnuLinux/g' texto.txt
Si el que busquem és redirigir la sortida a un fitxer en lloc d'imprimir-a la terminal, Utilitzarem el signe de redirecció de la següent manera:
sed 's/Linux/GnuLinux/g' texto.txt > salida.txt
La sortida de la comanda es guarda a l'arxiu sortida.txt en lloc de imprimir-se en la pantalla.
Per veure més opcions, es poden comprovar les pàgines de manual:
man sed
ack
Ack és una eina de línia d'ordres ràpida escrita en Perl. Es considera un reemplaçament amigable per a la utilitat grep, Que a més genera resultats d'una manera visualment atractiva.
Per a la instal·lar ack en el nostre sistema haurem d'executar a la terminal (Ctrl + Alt + T):
sudo apt install ack
la comanda Ack busca en l'arxiu o directori les línies que contenen la coincidència per als criteris de cerca. Després ressalta la cadena corresponent. Aquesta eina té la capacitat de distingir arxius en funció de les seves extensions.
La sintaxi de la comanda Ack seria alguna cosa com el següent
ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Per exemple, per cercar el terme Linux en un arxiu, hauríem d'executar:
ack Linux texto.txt
L'eina de cerca és bastant intel·ligent i si l'usuari no proporciona cap arxiu o directori, aquesta busca al directori i subdirectoris actuals el patró de recerca.
En el següent exemple, no es proporciona cap arxiu o directori. Ack detecta automàticament l'arxiu disponible al directori i busca el patró coincident:
ack Linux
Ripgrep
Ripgrep és una utilitat multiplataforma per buscar patrons d'expressions regulars. És més ràpida que totes les eines de recerca esmentades anteriorment, i cerca en directoris de forma recursiva patrons coincidents. També permet buscar tipus d'arxius específics. Per defecte, ripgrep ometrà arxius binaris i fitxers / directoris ocults.
Per a la instal·lar ripgrep en el sistema, no hi ha més que executar la següent comanda a la terminal (Ctrl + Alt + T):
sudo apt install ripgrep
La sintaxi per utilitzar ripgrep és bastant senzilla:
rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Si volguéssim buscar la cadena 'Linux'En arxius ubicats dins el directori actual, només haurem d'executar la comanda:
rg Linux
Per veure més opcions als usuaris podem utilitzar les pàgines de manual:
man rg
Cercador de plata
Per a la instal·lar aquesta eina, En Ubuntu no tindrem més que obrir una terminal (Ctrl + Alt + T) i escriure la comanda:
sudo apt install silversearcher-ag
Silver Searcher és una eina de recerca de codi obert i multiplataforma similar a ack però amb èmfasi en la velocitat. Facilita la recerca d'una cadena específica dins dels arxius en el menor temps possible. La sintaxi a utilitzar seria:
ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo
Per exemple, per buscar 'Linux'A l'arxiu text.txt, Hauríem d'escriure a la terminal (Ctrl + Alt + T):
ag Linux texto.txt
Per veure més opcions podrem consultar les pàgines de manual:
man ag
Aquestes són només algunes de les eines de línia de comandaments més utilitzades per buscar, filtrar i manipular text en Linux.