sed:如何引用一个序列实例

问题描述 投票:0回答:2

我输入了浮点序列:

0.44491 0.068512 0.00086731 0.19827 0.10896 0.00021067

现在我把正则表达式写成's/\(\([[:digit:]]\+.[[:digit:]]\+\)[[:space:]]\+\)\{6\}/\2/p'。 我想知道如何在这个序列中引用第二个实例,以便它匹配0.068512

使用powershell我能够完成这个: $ (gc $file | sls "(([0-9]+.[0-9]+)\s+){6}" -AllMatches).Matches.Groups[2].Captures[1].Value } 所以我在sed中寻找相当于“Captures [1]”的东西。

regex bash powershell sed regex-group
2个回答
2
投票

有了sed,你可以试试

var=1;echo '0.44491    0.068512   0.00086731 0.19827    0.10896    0.00021067' | sed -E 's/([^[:blank:]]*[[:blank:]]*){'"$var"'}([^[:blank:]]*).*/\2/'

var = 1来赶上第二个


0
投票

你可以使用awk '{print $2}' filename

关于awk的一点解释可以找到here

© www.soinside.com 2019 - 2024. All rights reserved.