【发布时间】:2014-11-17 13:39:33
【问题描述】:
我正在尝试理解这个 sed 正则表达式。
sed 's/.*\(ADDR=[^|]*\) |.*/\1/'
如果我没记错的话,上面会在一行中的任意位置搜索模式 ADDR=<something> 并且
将其替换为第一组。我不明白 [^|] 的含义。感谢您的帮助。
【问题讨论】:
-
“零个或多个不是
|的字符(竖线字符)”。 -
[^|]匹配除|之外的任何内容。字符类中的^否定字符类 -
为了使替换成功,必须存在两个字符串,并且顺序为
ADDR=和|。返回的成功组可能只包含匹配字符串。