Găsiți & Înlocuire text în mai multe documente din linia de comandă
Dacă vă simțiți confortabil cu linia de comandă și vreodată într-o situație în care trebuie să găsiți și să înlocuiți un cuvânt, o expresie, o adresă URL sau un caracter într-un grup de documente text multiple, perl își face treaba destul de bine. Un șir de comandă simplă va efectua foarte rapid o căutare și înlocuire a loturilor de grup pe text, fie într-un singur document, fie pe un grup de documente multiple.
La fel ca multe lucruri din linia de comandă, nu există un proces de confirmare, așa că veți dori să vă asigurați că sintaxa dvs. este setată corect înainte de a iniția o comandă, altfel poate fi necesar să faceți o altă căutare și înlocuire. pentru a vă repara greșeala.
Sintaxa de bază a comenzii este următoarea: perl -pi -w -e 's/THIS/THAT/g;' /cale/la/fișiere.txt
Pentru un exemplu cu un singur cuvânt, dacă trebuie să înlocuiți toate cazurile de „căpcăun” cu „pâin de porumb” în fiecare fișier .txt în folderul „Documente”, atunci veți folosi următoarea comandă:
perl -pi -w -e 's/ogre/cornbread/g;' ~/Documente/.txt
Pentru un exemplu de găsire și înlocuire a unei fraze întregi, să presupunem că vom înlocui întreaga propoziție „Fabrica de ciocolată ” cu „Vrăjitorul din Oz” într-un grup de fișiere .txt care încep cu „Filme” stocate în directorul Documente:
perl -pi -w -e 's/Fabrica de ciocolată/Vrăjitorul din Oz/g;' ~/Documente/Filme.txt
Găsirea și înlocuirea se face imediat. Puteți verifica din nou modificarea utilizând cat și grep pentru a verifica:
cat ~/Documents/Films124.txt |grep Vrăjitorul din Oz"
Desigur, acest lucru este destul de avansat și da, găsirea și înlocuirea loturilor prin mai multe documente se poate face într-un mod mai ușor de utilizat prin aplicații GUI precum TextWrangler și BBEdit, dar uneori linia de comandă este mai rapidă. pentru sarcini rapide ca aceasta și altele similare, plus că nu necesită descărcări suplimentare pentru utilizare.
Un mare succes lui Lifehacker pentru trucul excelent.
Update: Comanda „sed” este o altă modalitate de a găsi și înlocui rapid prin linia de comandă. Acoperirea sed este în mare parte un subiect pentru alt articol, dar sintaxa de bază a utilizării sed pentru această sarcină este puțin mai simplă și, prin urmare, mai ușor de reținut:
sed -i 's/THIS/THAT/g' /path/to/files.txt
Nu există o cale corectă sau greșită, așa că dacă utilizați perl sau sed devine o chestiune de preferință personală.