[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]+)
