bash,正则表达式,返回匹配的正则表达式

bash,正则表达式,返回匹配的正则表达式

问题描述:

请指出如何让bash为我打印匹配的表达式,如(?<=id=)[0-9]bash,正则表达式,返回匹配的正则表达式

我也想输入来自管道,它将是一行文本。

单单打印匹配的表达式
(不是整个行,可能会显示在同一行中的几个表达式)

yourcommand | grep -P -o '(?<=id=)[0-9]' 

bash的正则表达式不使用Perl兼容。你可以使用grep:

grep -P -o '(?<=id=)[0-9]' 

而且在管道:

number=$(echo "foo id=3 bar" | grep -Po '(?<=id=)[0-9]') 
echo $number # => 3