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

时间:2017-12-21 15:32:47

标签: regex bash powershell sed regex-group

我输入了浮点序列:

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]”。

2 个答案:

答案 0 :(得分: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来抓住第二个

答案 1 :(得分:0)

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

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