GNU/Linux >> Tutoriels Linux >  >> Linux

Comment changer toutes les occurrences d'un mot dans tous les fichiers d'un répertoire

Vérifiez ceci :http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/

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

J'utilise généralement ce court script, qui renommera une chaîne dans tous les fichiers et tous les noms de répertoires et noms de fichiers. Pour l'utiliser, vous pouvez copier le texte ci-dessous dans un fichier appelé replace_string , exécutez sudo chmod u+x replace_string puis déplacez-le dans votre sudo mv replace_string /usr/local/bin dossier pour pouvoir l'exécuter dans n'importe quel répertoire.

REMARQUE :cela ne fonctionne que sur Linux (testé sur Ubuntu) et échoue sur MacOS. Soyez également prudent avec cela car cela peut gâcher des choses comme les fichiers git. Je ne l'ai pas non plus testé sur les binaires.

#!/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

Une variante qui prend en compte les sous-répertoires (non testée) :

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

Ce sera find tous les fichiers (pas les répertoires, spécifiés par -type f ) sous /var/www , et effectuez un sed commande pour remplacer "privilèges" par "privilèges" sur chaque fichier qu'il trouve.


Linux
  1. Comment trouver un fichier sous Linux dans tous les répertoires de manière récursive

  2. Comment renommer un répertoire sous Linux

  3. Comment déplacer tous les fichiers (y compris cachés) d'un répertoire à un autre ?

  4. Renommer les fichiers dans le répertoire ?

  5. Comment supprimer tous les fichiers avec une extension particulière dans un dossier particulier ?

Comment renommer un ou plusieurs fichiers sous Linux

Comment modifier les autorisations de fichiers ou de répertoires dans cPanel ?

Comment supprimer tous les fichiers d'un répertoire sauf certains ?

Comment trouver tous les fichiers de zéro octet dans le répertoire

Comment créer des liens symboliques vers tous les fichiers (classe de fichiers) d'un répertoire ?

Comment renommer tous les fichiers avec des caractères spéciaux et des espaces dans un répertoire ?