我正在移植一个显然是sh脚本使用sed
的GNU实现编写到sed
的BSD实现。与原来的注释脚本的确切的行是:
# escape dot in file extension to grep it
ext="$(echo $ext | sed 's/\./\\./' -)"
我能够重现的结果与下面的(显然我不是穷尽所有可能性值ext
):
ext=.h; ext="$(echo $ext | sed 's/\./\\./' -)"; echo [$ext]
使用GNU的实施sed
以下返回:
[\.h]
使用BSD的实施sed
的FOL降脂返回:
sed: -: No such file or directory
[]
执行ext=.h; ext="$(echo $ext | sed 's/\./\\./')"; echo [$ext]
回报[\.h]
两个实施sed
。
我看过GNU和BSD的sed
的手册页没有找到关于尾随“ - ”的任何内容。使用“ - ”搜索sed
也不是很有成效。
“ - ”是一个错字吗? “ - ”是否需要一些意想不到的值$ext
? 问题不是sed
,而是sh
?
有人可以指引我应该看什么,甚至更好,解释“ - ”的目的是什么?
检查了这一点:http://stackoverflow.com/questions/8045479/whats-the-magic -of-a-dash-in-command-line-parameters – 2013-02-08 21:32:28