Linux найдет и заменит

Как заменить "abc" на "abcd" на все файлы папки с помощью оболочки?

Возможно ли использование команды sed?

Ответы

Ответ 1

Попробуйте выполнить следующую команду для файла file.txt:

sed -i 's/abc/abcd/g' file.txt


Попробуйте выполнить следующую команду для всех файлов в текущей папке:

find . -maxdepth 1 -type f -exec sed -i 's/abc/abcd/g' {} \;

Для файлов в текущем каталоге и во всех подкаталогах:

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

Или, если вы поклонник xargs:

find . -type f  | xargs -I {}  sed -i 's/abc/abcd/g' {}

Ответ 2

sed -i 's/abc/&d/g' *

должен работать.

Ответ 3

Да:

find /the/folder -type f -exec sed -i 's,\<abc\>,&d,g' {} \;