Как избежать временных файлов при выполнении поиска / замены строки в файлах - PullRequest
0 голосов
/ 21 мая 2018

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

grep -rl oldtext . | xargs sed -i 's/oldtext/newtext/g'

Проблема в том, что она сообщает об ошибке, что временный файл $ # ^% $ ^ $ не может быть открыт: разрешение запрещено.

Команда была запущена с sudo, поэтому кажется, что временный файл был сгенерирован при выполнении команды grep, но sed не может заменить строку в этом временном файле, так как он открывается.

Я пыталсяукажите тип файла для * .html, но ошибка та же:

grep -rl oldtext *.html . | xargs sed -i 's/oldtext/newtext/g'

Я знаю, что использование find позволяет избежать этой проблемы:

find ./ -type f -exec sed -i -e 's/oldstring/newstring/g' *.html {} \;

Просто любопытно, как избежать этой проблемы с помощью grepкоманда.Спасибо!

...