在OSX上,运行sed进行编辑可以通过传递零长度参数来实现:
find . -name "*.java" -print | xargs sed -f src/main/scripts/remove_snippets.sed -i ""
但是,将-i ""
放入shell变量不起作用:
dashi='-i ""'
find . -name *.java -print | xargs sed -f src/main/scripts/remove_snippets.sed $dashi
而不是编辑就地将""
解释为用于备份扩展的文字字符串,而是保留名为*.java""
的java文件的目录。
如何告诉bash将""
解释为空参数而不是包含两个双引号的参数?
答案 0 :(得分:3)
使用数组。
dashi=(-i "")
find . -name *.java -print | xargs sed -f src/main/scripts/remove_snippets.sed "${dashi[@]}"