我正在将一个显然是使用 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?
有人可以指导我看什么,或者更好地解释“-”的目的是什么?