echo "2018/06/12 18:34:58 (TEAM) * @{EE3F}name says: @{BBFF}umm" | sed -e 's/@{EE3F}//g' | sed -e 's/@{BBFF}//g'
有效,但无效:
echo "2018/06/12 18:34:58 (TEAM) * @{EE3F}name says: @{BBFF}umm" | sed -e 's/@{[A-Z0-9]}//g'
我做错了什么?搜索了很久,却没有得到任何提示。
答案1
[A-Z0-9]
仅匹配给定类型的一个字符。[A-Z0-9]\+
如果您的 sed 实现支持,请使用、[A-Z0-9]\{1,\}
或[A-Z0-9][A-Z0-9]*
,即该类型的一个或多个字符。
您还可以使用 POSIX 类[:alnum:]
而不是列出字符范围(但它也匹配小写字符),或者[:xdigit:]
仅匹配十六进制数字。