【发布时间】:2011-06-02 01:10:59
【问题描述】:
我写了一个 sed 解释器脚本:
#!/usr/bin/sed -E -f
s/ +/_/g
s/[.':]//g
s/&/and/g
但是,当我运行它时:
$ echo "Bob Dylan" | shscrub.sed
sed: unknown option --
usage: sed [-aEnru] command [file ...]
sed [-aEnru] [-e command] [-f command_file] [file ...]
我需要 -E 选项,因为我使用的是扩展正则表达式语法“+”。
任何想法我做错了什么?
编辑
解决方法:
#!/usr/bin/sed -f
s/ \{1,\}/_/g
s/[.':]//g
s/&/and/g
但是,我仍然想知道如何在 shebang (#!) 行中传递两个参数。
【问题讨论】:
-
你使用的是什么版本的 sed?
-
OpenBSD 4.8 上的默认 sed。说:sed 实用程序符合 IEEE Std 1003.1-2008 (``POSIX'') 规范。标志 [-aEru] 是该规范的扩展。