Solapas principales

A veces queremos sustituir una cadena en todos los archivos de un directorio y sus subdirectorios de forma recursiva. Ésto es sencillo de hacer utilizando perl. Vamos a verlo por partes: Cuando queremos sustituir directamente una cadena por otra en un fichero, hacemos algo así:

# perl -p -i -e 's/cadenaasustituir/nuevacadena/g' fichero

Si la sustitución queremos hacerla en todos los ficheros de un subdirectorio, haremos:

# perl -p -i -e 's/cadenaasustituir/nuevacadena/g' *

Si queremos sustituir la cadena en todos los subdirectorios del directorio actual, combinaremos el comando perl con un comando find que busque todos los archivos:

# perl -p -i -e 's/cadenaasustituir/nuevacadena/g' `find ./ -name *`

Y ya para terminar de rematar: Si queremos sustituir una cadena por otra en todos los ficheros con un determinado nombre en todos los subdirectorios del directorio actual:

# perl -p -i -e 's/cadenaasustituir/nuevacadena/g' `find ./ -name "patronabuscar"`

Veamos unos ejemplos: Sustituir la cadena jose por pepe en el fichero clientes.txt:

# perl -p -i -e 's/jose/pepe/g' clientes.txt

Sustituir la cadena jose por pepe en todos los ficheros del directorio actual:

# perl -p -i -e 's/jose/pepe/g' *

Sustituir la cadena jose por pepe en el directorio actual y en todos sus subdirectorios:

# perl -p -i -e 's/jose/pepe/g' `find ./ -name *`

Sustituir la cadena jose por pepe en todos los ficheros con extensión .txt del directorio actual y de todos sus subdirectorios:

# perl -p -i -e 's/jose/pepe/g' `find ./ -name "*.txt"`

Y un último ejemplo: Sustituir la cadena $(grub_device) por la cadena (hd0,1) en todos los ficheros con extensión .lst del directorio actual y sus subdirectorios:

# perl -p -i -e 's/\$\(grub_device\)/\(hd0,1\)/g' `find ./ -name "*.lst"`

Fuente Original

Contenido por etiquetas

Linux Linux Tips Solución Linux Help Drupal Arch-Linux Media Front Hacking Terminal Linux-Distro Shell Mac OSX Videos Linux seguridad Manjaro Windows Servers Consola Linux Guías Comandos Android Ubuntu MacOS Drush Screencast Joomla Cracking Debian PHP Backtrack Command Line Virtualmin Xampp Compiz Fusion Media Youtube Server Drupal 7 Skype mysql Instalación Seguridad Telefonía ROOT Servidor Local ClamAv hacking-windows php7 Windows 10 MS-SQL Antergos Sysmonitor CyanogenMod PDF Libros ownCloud KDE Samba Kali Linux Joomla Seguridad Setup Webmin Grub Views Elastix Drush_Make Escritorio Descargar Nivo Slider error Virtual Wine Whatsapp SCP SSH Unix servidor web Noticias Rootear SQL dd Python google Covid19 sars-cov2 apache Líder Kali red Boot Drush Windows url Limpias ROM Top 500 Metasploit SEO url canonica Katana Asterisk Iphone Chrome Youtube Distros Xampp 1.8.1 XFCE Joomla 3.0 Centos Galaxy S (bootstrap) DARKY´S ROM .make dselect Xwinwrap Views Horizontal Slider Webform GCP grep Triple-Boot exec: 90: : Permission denied Webform_Layout Driver r8168 Open DNS CryptKeeper Kingsoft Office WPS 1and1 VMplayer Inyection SQL Viber Recovery Galaxy S4 Wake On Lan Wol Drupal 8 Real Estate Java6 Alsi Atraci Tails Telegram Sigram duff Fish ncdu PBX g729 Códec Imagesloaded String Streaming htaccess Mounty Django C++ C XP ReacOS MITM Ettercap Wireshark Postfix eXtern OS google-athenticator.app WayBackMachine web.archive.org Homebrew 2-FACTOR 2 factores gmail python3 facturas FOCA mpdf Vaio Sony fruteroloco scanner bmon pipenv authenticator Rarcrack SA-CORE-2013-003 Prestashop LAMP Supercomputadoras sniffing Script Google-Earth Arranque compartir firewall sistema bitacora fallo firestarter Aircrack-ng Galaxy S3 vs Iphone 5 Horizontal Slider Media Vimeo MediaFront Acquia Tilt 3D Cain & Abel Office winAUTOPWN gh22ns50 Metasploitable LPS Conky Webform Layout Gimp Munich Ahorra Papá FINK youtube-dl Sox Redgum Archserver Secure Copy Shutter Encriptar Enlaces Externos Nube Joomla 2.5 Migrar FTP Redes Fing Overlook Fing PhpMyadmin internal server error 500 Cerebro FDesktopRecorder Piropos Geek Texto Sustituir Jdownloader 10 Millones Line Open Source