sed只提取模式

时间:2012-09-29 11:04:50

标签: sed

我在使用sed时遇到了一些麻烦。提取模式的正确方法是什么? 例如,以下内容返回world,我希望它只返回w

echo "hello world" | sed -n 's|hello \(w\)|\1|p'

3 个答案:

答案 0 :(得分:3)

你可以用这种方式更好。

回声“你好世界”| sed -r's /.+(w)。* / \ 1 /'

这将只提取w字符。 -r选项是扩展正则表达式。所以我们不使用转义“\”特殊字符。
。匹配任何单个字符。 *星号将匹配零次或多次。 + plus将匹配一个或多个匹配项。 ()这是使用此分组方法,您可以获取返回引用。 s用于替代方法。

答案 1 :(得分:2)

你忘记了匹配&在w之后替换(删除)文本:

echo "hello world" | sed -n 's|hello \(w\).*|\1|p'

答案 2 :(得分:1)

sed命令如果匹配任何字符串,如果只匹配第一个字符中的第二个字

sed's /([a-z]。*)([a-z])。* / \ 2 /'inputfile