Regex sed命令中的正则表达式
我在sed命令中放置正则表达式时遇到了一个小问题,下面是我的代码:Regex sed命令中的正则表达式,regex,sed,sh,Regex,Sed,Sh,我在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_B=`echo $RAW_LIST_A | 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_B=`echo $RAW_LIST_A | sed 's/[0-9a-f]\{8\} / /g'`
由于您没有将参数引用到sed
,shell将其拆分为三个参数:s/[0-9a-f]{8}
、//code>和/g
,然后将其传递到sed
另外,注意反斜杠以避开花括号。执行以下操作:
RAW_LIST_B=`echo $RAW_LIST_A | sed 's/[0-9a-f]\{8\} / /g'`
由于您没有将参数引用到sed
,shell将其拆分为三个参数:s/[0-9a-f]{8}
、//code>和/g
,然后将其传递到sed
另外,请注意反斜杠以避开花括号。您应该将sed expersion括在引号中,这样它将是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
您应该将sed expersion括在引号中,以便它是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
没有效果,我怀疑这是在寻找字面上的“[0-9a-f]{8}”——没有错误!呃,我想你在找一个文本{8}
。如果这应该是“原子被重复的次数”,那么在sed
中,您需要用反斜杠将其转义。请参阅更新的答案。没有效果,我怀疑这是在寻找字面上的“[0-9a-f]{8}”。-没有错误!呃,我想你在找一个文本{8}
。如果这应该是“原子被重复的次数”,那么在sed
中,您需要用反斜杠将其转义。请参阅更新的答案。没有效果,我怀疑这是在寻找字面上的“[0-9a-f]{8}”。-没有错误!没有效果,我怀疑这是在寻找字面上的“[0-9a-f]{8}”——没有错误!您还可以为$RAW\u LIST\u字符串/变量提供样本值吗?您还可以为$RAW\u LIST\u字符串/变量提供样本值吗?