我在将正则表达式放入 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
谢谢,
做这个:
RAW_LIST_B=`echo $RAW_LIST_A | sed 's/[0-9a-f]\{8\} / /g'`
由于您没有将参数引用到sed
,shell 将其拆分为三个参数:s/[0-9a-f]{8}
,/
然后/g
将其传递给sed
.
另外,请注意反斜杠以转义大括号。
您应该将 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