我输入了浮点序列:
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]”的东西。
有了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来赶上第二个
你可以使用awk '{print $2}' filename
。
关于awk
的一点解释可以找到here。