GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo cambiar todas las apariciones de una palabra en todos los archivos de un directorio

Mira esto:http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/

cd /var/www
sed -i 's/privelages/privileges/g' *

Generalmente uso este breve script, que cambiará el nombre de una cadena en todos los archivos y todos los nombres de directorios y archivos. Para usarlo, puede copiar el texto a continuación en un archivo llamado replace_string , ejecuta sudo chmod u+x replace_string y luego muévelo a tu sudo mv replace_string /usr/local/bin carpeta para poder ejecutarlo en cualquier directorio.

NOTA:esto solo funciona en Linux (probado en ubuntu) y falla en MacOS. También tenga cuidado con esto porque puede estropear cosas como archivos git. Tampoco lo he probado en binarios.

#!/usr/bin/env bash

# This will replace all instances of a string in folder names, filenames,
# and within files.  Sometimes you have to run it twice, if directory names change.


# Example usage:
# replace_string apple banana

echo $1
echo $2

find ./ -type f -exec sed -i -e "s/$1/$2/g" {} \;  # rename within files
find ./ -type d -exec rename "s/$1/$2/g" {} \;    # rename directories
find ./ -type f -exec rename "s/$1/$2/g" {} \;  # rename files

Una variación que tiene en cuenta los subdirectorios (no probado):

find /var/www -type f -exec sed -i 's/privelages/privileges/g' {} \;

Esto será find todos los archivos (no directorios, especificados por -type f ) bajo /var/www y realiza un sed comando para reemplazar "privilegios" con "privilegios" en cada archivo que encuentre.


Linux
  1. Cómo cambiar el nombre de un directorio en Linux

  2. ¿Cómo mover todos los archivos (incluidos los ocultos) de un directorio a otro?

  3. ¿Cómo cambiar los permisos del usuario raíz a todos los usuarios?

  4. Cómo reemplazar todas las apariciones de una palabra en todos los archivos en la línea de comandos de Linux

  5. ¿Cómo cambio el nombre de todas las carpetas y archivos a minúsculas en Linux?

Cambiar el nombre de todos los archivos y nombres de directorios a minúsculas en Linux

Cómo cambiar el nombre de los archivos en Linux

Cómo cambiar el nombre de un archivo (s) en Linux

¿Cómo cambiar archivos o permisos de directorio en cPanel?

¿Cómo crear enlaces simbólicos a todos los archivos (clase de archivos) en un directorio?

¿Cómo cambiar el nombre de todos los archivos con caracteres especiales y espacios en un directorio?