Я использую следующее для рекурсивного поиска в каталоге определенной строки и замены ее на другую:
grep -rl oldstr path | xargs sed -i 's/oldstr/newstr/g'
Это работает нормально.Единственная проблема заключается в том, что если строка не существует, то sed
завершается ошибкой, поскольку она не получает никаких аргументов.Это проблема для меня, так как я запускаю это автоматически с ANT, и сборка завершается неудачно, так как sed
не удается.
Есть ли способ сделать его безошибочным в случае, если строка не найдена?
Меня интересует простое решение в одну строку, которое я могу использовать (не обязательно с grep
или sed
, но с такими общими командами unix, как эти).