GNU/Linux >> Znalost Linux >  >> Linux

Jak změnit všechny výskyty slova ve všech souborech v adresáři

Podívejte se na toto:http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/

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

Obecně používám tento krátký skript, který přejmenuje řetězec ve všech souborech a všech názvech adresářů a souborů. Chcete-li jej použít, můžete zkopírovat níže uvedený text do souboru s názvem replace_string , spusťte sudo chmod u+x replace_string a poté jej přesuňte do sudo mv replace_string /usr/local/bin složku, abyste jej mohli spustit v libovolném adresáři.

POZNÁMKA:Toto funguje pouze na linuxu (testováno na ubuntu) a selhává na MacOS. Buďte také opatrní, protože to může zkazit věci, jako jsou soubory git. Netestoval jsem to ani na binárních souborech.

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

Varianta, která bere v úvahu podadresáře (netestováno):

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

To bude find všechny soubory (ne adresáře, specifikované -type f ) pod /var/www a proveďte sed příkaz k nahrazení "privelages" "privileges" v každém souboru, který najde.


Linux
  1. Jak přejmenovat adresář v Linuxu

  2. Jak odstranit všechny soubory s konkrétní příponou v konkrétní složce?

  3. Jak přesunout všechny soubory z aktuálního adresáře do horního adresáře?

  1. Jak přejmenovat soubory v Linuxu

  2. Jak chown/chmod všechny soubory v aktuálním adresáři?

  3. Jak vytvořit symbolické odkazy na všechny soubory (třídu souborů) v adresáři?

  1. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  2. Jak přesunout všechny soubory (včetně skrytých) z jednoho adresáře do druhého?

  3. Přejmenovat soubory v adresáři?