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 赶上第二个
我输入了浮点数序列:
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 赶上第二个