我在sed上遇到了一些麻烦。什么是正确的方式来提取模式?
例如下面的回报world
,我希望它返回只是w
sed只提取图案
echo "hello world" | sed -n 's|hello \(w\)|\1|p'
我在sed上遇到了一些麻烦。什么是正确的方式来提取模式?
例如下面的回报world
,我希望它返回只是w
sed只提取图案
echo "hello world" | sed -n 's|hello \(w\)|\1|p'
你忘了匹配& REPLACE(删除)w
后的文字:
echo "hello world" | sed -n 's|hello \(w\).*|\1|p'
你可以更好的使用这条路。
回声“hello world”| sed -r's /.+(w)。*/\ 1 /'
这将只提取w字符。 -r选项是扩展正则表达式。所以我们不使用转义“\”特殊字符。
。匹配任何单个字符。 *星号将匹配零个或多个匹配项。 + plus将匹配一个或多个匹配项。 ()这是使用此分组方法,您可以取回引用。用来代替方法的是 。
'-r'被gnu sed识别,但有很多'sed'不接受这个选项。 –
sed命令如果匹配任何字符串如果在第一个字符匹配只有第二字
SED的/([AZ]。*)([AZ])。*/\ 2 /'inputfile中
你的模式符合'hello world'中的'hello w'。只有那个匹配才会被替换为'w'。 – Gumbo