我有以下字符串,没有用行分隔(它是Posh-SSh连接的输出):
Active : Cumulative : Peak Concur : Inactive
----------------------------------------------
AnyConnect Client : 959 : 1652 : 1028 : 31
SSL/TLS/DTLS : 959 : 1652 : 1028 : 31
Site-to-Site VPN : 5 : 35 : 5
IKEv2 IPsec : 2 : 24 : 2
IKEv1 IPsec : 3 : 11 : 3
---------------------------------------------------------------------------
Total Active and Inactive : 995 Total Cumulative : 1687
---------------------------------------------------------------------------
---------------------------------------------------------------------------
Tunnels Summary
---------------------------------------------------------------------------
Active : Cumulative : Peak Concurrent
----------------------------------------------
IKEv1 : 3 : 11 : 3
IKEv2 : 2 : 24 : 2
IPsec : 7 : 45 : 9
AnyConnect-Parent : 990 : 1652 : 1028
SSL-Tunnel : 912 : 2698 : 962
DTLS-Tunnel : 857 : 2813 : 889我想提取的是"AnyConnect Client : 959 : ",实际上,"959“是我需要的字符串。
使用Select上的表达式,我得到了匹配,但我只需要模式后面的字符,比如50个字符(然后我将提取数字):
Select-String -Pattern "(?=.*AnyConnect Client).*"谢谢!
发布于 2020-03-26 14:31:01
听起来您需要一个前瞻性((?<=PATTERN))而不是前瞻性((?=PATTERN)):
$String |Select-String -Pattern "(?<=.*AnyConnect Client\D*)\d+" |ForEach-Object {$_.Matches.Value}https://stackoverflow.com/questions/60868983
复制相似问题