GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So ändern Sie alle Vorkommen eines Wortes in allen Dateien in einem Verzeichnis

Sehen Sie sich das an:http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/

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

Ich verwende im Allgemeinen dieses kurze Skript, das eine Zeichenfolge in allen Dateien und allen Verzeichnis- und Dateinamen umbenennt. Um es zu verwenden, können Sie den folgenden Text in eine Datei namens replace_string kopieren , führen Sie sudo chmod u+x replace_string aus und verschieben Sie es dann in Ihre sudo mv replace_string /usr/local/bin Ordner, um es in einem beliebigen Verzeichnis ausführen zu können.

HINWEIS:Dies funktioniert nur unter Linux (getestet auf Ubuntu) und schlägt unter MacOS fehl. Seien Sie auch damit vorsichtig, da es Dinge wie Git-Dateien durcheinander bringen kann. Ich habe es auch nicht auf Binärdateien getestet.

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

Eine Variante, die Unterverzeichnisse berücksichtigt (ungetestet):

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

Dies wird find alle Dateien (keine Verzeichnisse, spezifiziert durch -type f ) unter /var/www , und führen Sie einen sed aus Befehl, "Privilegien" in jeder gefundenen Datei durch "Privilegien" zu ersetzen.


Linux
  1. So finden Sie eine Datei in Linux rekursiv in allen Verzeichnissen

  2. So benennen Sie ein Verzeichnis unter Linux um

  3. Wie verschiebt man alle Dateien (einschließlich versteckter) von einem Verzeichnis in ein anderes?

  4. Dateien im Verzeichnis umbenennen?

  5. Wie lösche ich alle Dateien mit einer bestimmten Erweiterung in einem bestimmten Ordner?

So benennen Sie eine Datei (en) in Linux um

Wie ändere ich Dateien oder Verzeichnisberechtigungen in cPanel?

Wie chown/chmod alle Dateien im aktuellen Verzeichnis?

So finden Sie alle Null-Byte-Dateien im Verzeichnis

Wie erstellt man symbolische Links zu allen Dateien (Dateiklassen) in einem Verzeichnis?

Wie benenne ich alle Dateien mit Sonderzeichen und Leerzeichen in einem Verzeichnis um?