В OSX запуск sed для редактирования на месте выполняется путем передачи аргумента нулевой длины, например:
find . -name "*.java" -print | xargs sed -f src/main/scripts/remove_snippets.sed -i ""
Однако помещение -i ""
в переменную оболочки не работает:
dashi='-i ""'
find . -name *.java -print | xargs sed -f src/main/scripts/remove_snippets.sed $dashi
Вместо редактирования на месте ""
интерпретируется как буквенная строка, используемая для расширения резервной копии, оставляя каталог файлов Java с именем *.java""
.
Как bash можно интерпретировать ""
как пустой аргумент, а не как аргумент, содержащий две двойные кавычки?