我把一个正则表达式放在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}
,以便从RAW_LIST_A
谢谢,
答案 0 :(得分:2)
这样做:
RAW_LIST_B=`echo $RAW_LIST_A | sed 's/[0-9a-f]\{8\} / /g'`
由于您没有将参数引用到sed
,因此shell将其分为三个参数:s/[0-9a-f]{8}
,/
和/g
,然后将其传递给sed
}。
另外,请注意反斜杠以逃避大括号。
答案 1 :(得分:2)
你应该将sed表达式括在引号中,这样它就是一个由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