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

时间:2012-01-15 18:14:25

标签: regex bash

请指出如何让bash为我打印匹配的(?<=id=)[0-9] expr。

我也希望输入来自管道,它将是一行文字。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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

在一个管道中:

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