regex - probar - ¿Cuál es la mejor herramienta para encontrar y reemplazar expresiones regulares en varios archivos?
regex replace online (19)
Amo esta herramienta:
Te da una vista previa "a medida que escribes" de tu expresión regular ... FANTÁSTICA para los que no están bien versados en las RE ... y es súper rápida cambiando cientos o miles de archivos a la vez ...
Y luego, puedes DESHACER tus cambios también ...
Muy agradable...
Patrick Steil - http://www.podiotools.com
Preferiblemente herramientas gratis si es posible.
Además, la opción de buscar múltiples expresiones regulares y reemplazarlas con diferentes cadenas sería una ventaja.
Como era de esperar, Perl hace un buen trabajo al manejar esto, junto con un shell decente:
for file in @filelist ; do
perl -p -i -e "s/pattern/result/g" $file
done
Esto tiene el mismo efecto (pero es más eficiente, y sin la condición de carrera) como:
for file in @filelist ; do
cat $file | sed "s/pattern/result/" > /tmp/newfile
mv /tmp/newfile $file
done
El editor de directorios de Emacs tiene la función `dired-do-query-replace-regexp ''para buscar y reemplazar una expresión regular en un conjunto de archivos marcados.
En Windows hay una alternativa gratuita que funciona mejor: Notepad ++
Vaya a "Buscar" -> "Buscar en archivos". Uno puede dar el directorio, el patrón de archivos, establecer expresiones regulares, luego obtener una vista previa de las coincidencias y, finalmente, reemplazar todos los archivos recursivamente.
En Windows, me gustaba WinGrep
En Ubuntu, uso Regexxer.
Encontré la herramienta RxFind útil (OSS gratis).
He escrito una herramienta de línea de comandos gratuita para que Windows haga esto. Se llama rxrepl , admite unicode y búsqueda de archivos. Algunos pueden encontrarlo útil.
La búsqueda y reemplazo de expresiones regulares de jEdit en archivos es bastante decente. Un poco exagerado si solo lo usas para eso. Tampoco es compatible con el reemplazo de multiseguridad que solicitó.
Mi favorito personal es PowerGrep by JGSoft. RegexBuddy con RegexBuddy que puede ayudarlo a crear y probar la expresión regular, realiza automáticamente copias de seguridad de todos los cambios (y proporciona capacidades de deshacer), proporciona la capacidad de analizar múltiples directorios (con patrones de nombre de archivo) e incluso admite formatos de archivo como Microsoft Word , Excel y PDF.
Para Mac OS X, TextWrangler hace el trabajo.
Para buscar y reemplazar en varios archivos en Windows, encontré que rxFind es muy útil.
Perl. En serio, hace que los sysadmin sean mucho más fáciles. Aquí hay un ejemplo:
perl -pi -e ''s/something/somethingelse/g'' *.log
Tengo el lujo de Unix y Ubuntu; En ambos, utilizo gawk para cualquier cosa que requiera búsqueda y reemplazo línea por línea, especialmente para línea por línea para subcadenas (s). Recientemente, este fue el más rápido para procesar 1100 cambios contra millones de líneas en cientos de archivos (un directorio) En Ubuntu soy un fanático de regexxer
sudo apt-get install regexxer
Vim para el rescate (y presidente ;-)). Tratar:
vim -c "argdo! s:foo:bar:gci" <list_of_files>
(Me encanta el modificador -c de Vim, es mágico. O si ya habías estado en Vim, y abriste los archivos, por ejemplo:
vim <list_of_files>
Solo problema:
:bufdo! s:foo:bar:gci
Por supuesto sed
y perl
es capaz. HTH.
Yo iría por bash + find + sed.
sed es rápido y fácil:
sed -e "s/pattern/result/" <file list>
también puedes unirte a find:
find <other find args> -exec sed -e "s/pattern/result/" "{}" ";"
si ''textpad'' es una respuesta válida, sugeriría Sublime Text inductivamente.
Las ediciones con múltiples cursores son una forma aún más eficiente de hacer reemplazos en general, pero su " Buscar en archivos " es el nivel superior para reemplazos de regex / plain find.
Los corchetes (código fuente, deb / Ubuntu, OSx y Windows) tienen una buena visualización de los resultados, lo que permite seleccionarlos individualmente para aplicar la sustitución. Puede buscar por texto estándar, mayúsculas y minúsculas, y regex. Muy importante: puede excluir patrones de archivos y directorios en la búsqueda.
Textpad hace un buen trabajo en Windows. Y es un muy buen editor también.