bash如何解释扩展字符串中的零长度参数?

时间:2012-02-17 05:12:15

标签: macos bash sed

在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将""解释为空参数而不是包含两个双引号的参数?

1 个答案:

答案 0 :(得分:3)

使用数组。

dashi=(-i "")
find . -name *.java -print | xargs sed -f src/main/scripts/remove_snippets.sed "${dashi[@]}"