我正在将一个显然是使用 GNU 实现编写的 sh 脚本移植sed
到sed
. 脚本中带有原始注释的确切行是:
# 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
以下实现返回:
sed: -: No such file or directory
[]
为. ext=.h; ext="$(echo $ext | sed 's/\./\\./')"; echo [$ext]
_ [\.h]
_sed
我查看了 GNU 和 BSD 的sed
手册页都没有发现任何关于尾随“-”的信息。用“-”搜索sed
也不是很有成效。
“-”是错字吗?某些意外值是否需要“-” $ext
?问题不sed
在于 ,而在于sh
?
有人可以指导我看什么,或者更好地解释“-”的目的是什么?