如何在egrep中写入非捕获组

如何在egrep中写入非捕获组,grep,Grep,以下命令无法从16714ssh-f-N-T-R3300:localhost:22正确捕获16714 但是,如果您使用-p标志,则切换到grep是不正确的。我希望egrep能够处理这个问题grep-p强制grep使用Perl regexp引擎。 egrep与grep-E相同,它强制grep使用不支持前瞻的ERE扩展正则表达式引擎。 您可以在此处找到Perl和ERE之间的差异的快速参考:要使用POSIX grep处理此问题,您可以使用grep隔离感兴趣的行,然后使用cut隔离感兴趣的字段: $ ec

以下命令无法从16714ssh-f-N-T-R3300:localhost:22正确捕获16714

但是,如果您使用-p标志,则切换到grep是不正确的。我希望egrep能够处理这个问题

grep-p强制grep使用Perl regexp引擎。 egrep与grep-E相同,它强制grep使用不支持前瞻的ERE扩展正则表达式引擎。
您可以在此处找到Perl和ERE之间的差异的快速参考:

要使用POSIX grep处理此问题,您可以使用grep隔离感兴趣的行,然后使用cut隔离感兴趣的字段:

$ echo "16714 ssh -f -N -T -R3300:localhost:22" | grep 'R3300:localhost:22' | cut -d' ' -f1
16714
或者,只需使用awk:


我不想要剩下的线,只有PID。问题是关于白鹭,因为我显然误解了它的功能。
$ echo "16714 ssh -f -N -T -R3300:localhost:22" | grep 'R3300:localhost:22' | cut -d' ' -f1
16714
$ echo "16714 ssh -f -N -T -R3300:localhost:22" | awk '/R3300:localhost:22/{print $1}'
16714