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

sed: How to back reference one instance of sequence

我输入了浮点数序列:

0.44491 0.068512 0.00086731 0.19827 0.10896 0.00021067

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

使用 powershell 我可以完成这个: $ (gc $file | sls "(([0-9]+.[0-9]+)\s+){6}" -AllMatches).Matches.Groups[2].Captures[1].Value } 所以我在 sed 中寻找 "Captures[1]" 的等价物。

你可以使用 awk '{print }' filename.

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

有了sed,你可以试试

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

var=1 赶上第二个