请指出如何让bash为我打印匹配的(?<=id=)[0-9]
expr。
我也希望输入来自管道,它将是一行文字。
答案 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