GNU/Linux >> Znalost Linux >  >> Linux

Jak nahradit řetězec ve více souborech v příkazovém řádku linuxu

Podobné jako Kasparova odpověď, ale s příznakem g, který nahradí všechny výskyty na řádku.

find ./ -type f -exec sed -i 's/old_string/new_string/g' {} \;

Pro globální rozlišení velkých a malých písmen:

find ./ -type f -exec sed -i 's/old_string/new_string/gI' {} \;

cd /path/to/your/folder
sed -i 's/foo/bar/g' *

Výskyty "foo" budou nahrazeny "bar".

Na systémech BSD, jako je macOS, musíte poskytnout záložní rozšíření, jako je -i '.bak' nebo jinak "riziko poškození nebo částečného obsahu" podle manuálové stránky.

cd /path/to/your/folder
sed -i '.bak' 's/foo/bar/g' *

Linux
  1. Jak komprimovat více souborů v systému Linux

  2. Jak nahradit řetězec v souboru (souborech)?

  3. Jak restartovat Linux pomocí příkazového řádku

  1. Jak přejmenovat soubory v Linuxu

  2. Jak odstranit soubory a adresáře v Linuxu z příkazového řádku

  3. Jak nahradit všechny výskyty slova ve všech souborech v příkazovém řádku Linuxu

  1. Jak použít Sed k výměně víceřádkového řetězce?

  2. Jak přejmenovat více souborů najednou v Linuxu

  3. Převeďte řetězec na hexadecimální na příkazovém řádku