0

我在将正则表达式放入 sed 命令时遇到了一点问题,这是我的代码:

RAW_LIST_B=`echo $RAW_LIST_A | sed s/[0-9a-f]{8} / /g`

我得到这个错误:

sed: -e expression #1, char 13: unterminated `s' command

我不确定如何引用,[0-9a-f]{8}以便它删除所有 8 位十六进制数字和尾随空格RAW_LIST_A

谢谢,

4

2 回答 2

2

做这个:

RAW_LIST_B=`echo $RAW_LIST_A | sed 's/[0-9a-f]\{8\} / /g'`

由于您没有将参数引用到sed,shell 将其拆分为三个参数:s/[0-9a-f]{8}/然后/g将其传递给sed.

另外,请注意反斜杠以转义大括号。

于 2012-11-09T11:40:24.293 回答
2

您应该将 sed experssion 括在引号中,这样它将是 shell 传递给 sed 的一个字符串参数

RAW_LIST_B=`echo $RAW_LIST_A | sed "s/[0-9a-f]\{8\} //g"`

样本输出:

$ echo "hello a5a5a5a6 world" | sed "s/[0-9a-f]\{8\} //g"
hello world
于 2012-11-09T11:40:34.210 回答