Я пытался найти и заменить строку в файлах с помощью команды:
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команда.Спасибо!