Buscar i reemplaçar text pot ser una tasca senzilla utilitzant els editors de text més bàsics. Però, què passa quan és necessari fer aquesta mateixa tasca en diversos arxius a el mateix temps?
Bé, aquí la cosa es complica ... o no tant. |
En el següent exemple, farem servir set per a substituir totes les ocurrències de la paraula «mongo» per la paraula «aurelio» en tots els arxius que tinguin l'extensió .txt i que es trobin a la carpeta / home / usuari / micarpeta /.
find / home / usuari / micarpeta / -name * .txt -exec set -i "s / mongo / aurelio / g" {} \;
Així de fàcil ...
Abans d'acabar, val la pena esmentar que alguns editors de text permeten realitzar aquesta operatòria utilitzant una interfície gràfica. Entre d'altres, cal destacar a jEdit, Geany, Regexxer, etc.
súper
jo faig servir el Gedit
gedit per a múltiples arxius ??? com ???
Com podria posar un grep entremig ai?
El que necessito és fer el següent, buscar dins de home tots els arxius que es diguin index.html i que continguin la paraula «XXXXXXX», i reemplaçar-ho amb «YYYYYYYYYY», com es podria fer perquè busqui només en els arxius que realment tinguin la string?
Moltes Gràcies!
Jo ús el Gedit també, mes moltes gràcies
Et falta l'argument per exec. El codi correcte seria:
find / home / usuari / micarpeta / -name * .txt -exec set -i «s / mongo / aurelio / g» {} \;
Una salutació 😀
Tenés raó! Gràcies!
Ja ho vaig corregir. : =)
Acabat de acabo de provar això (com ROOT):
find / usr / share / icons / acyl-Allgray / -name * .svg -exec set -i «s / 666666/000000 / g» {} \;
per canviar el color de tot un set de icones. La veritat que és una ordre molt poderós, normalment aquesta tasca m'hauria pres hores editant arxiu per arxiu.
Inserir text en diversos arxius, segons el nombre de la línia, en el meu cas línia 2 (2i), en centos linux
find / home // public_html / res / -name -exec set -i «2i \;» {} \;
no va sortir tot el codi aixi que reenviament:
find / home / user / public_html / res / -name nombrearchivo.ext -exec set -i «2i \ text a inserir» {} \;