[TOC]
Introducción:
Vamos a repasar algunos métodos para buscar y remplazar una palabra o expresion regular. Las opciones que vamos a considerar son las siguientes:
- Sea recursivo
- Permite usar expresiones regulares
Herramientas nativas
Las siguientes herramientas son nativas de linux y posiblemente estén instaladas en todas las distribuciones de linux.
Search and replace con egrep
Muestra los ficheros que contienen el patrón a buscar con egrep
y con sed
los remplaza.
- Recursivo: ✔
- Regex: ✔ (Con matices, sed no acepta caracteres de búsqueda literal como \d, pero si [0-9]+)
|
|
Search and replace con find
Busco los ficheros filtrándolos con find
, después con sed
remplazo.
Funcionalidad:
- Recursivo: ✔
- Regex: ✔ (Con matices, sed no acepta caracteres de búsqueda literal como \d, pero si [0-9]+)
|
|
Herramientas externas
Search and replace con Python
Script hecho en python para buscar y remplazar en un arbol de directorios.
Funcionalidad:
- Recursivo: ✔
- Regex: ✔
|
|
Search and replace con Perl
Parámetros de perl:
- -e significa ejecutar la siguiente línea de código.
- -i significa editar en el lugar
- -w escribe advertencias
- -p en el archivo de entrada, imprimiendo cada línea después de que se le aplique el script.
Funcionalidad:
- Recursivo: ❌
- Regex: ✔
En Fedora no me funciona
|
|
Tabla resumen
Metodo | Recursivo | Regex |
---|---|---|
egrep | ✔ | ✔* |
find | ✔ | ✔* |
python | ✔ | ✔ |
perl | ✔ | ❌ |
* sed no acepta caracteres de búsqueda literal como \d, pero si [0-9]+)