使用 sed 从字符串中提取值

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

我有以下代码:

set MARKER_LIST = "t14_noTap_leftSlow t24_noTap_leftMedium t34_noTap_leftFast \
                                        t44_noTap_rightSlow t54_noTap_rightMedium t64_noTap_rightFast \
                                        t74_noTap_inphaseSlow t84_noTap_inphaseMedium t94_noTap_inphaseFast \
                                        t104_noTap_antiphaseSlow t114_noTap_antiphaseMedium t124_noTap_antiphaseFast"

foreach code (${MARKER_LIST})

set evt_code = `echo ${code} | sed 's/^.*t[0-9]*_noTap_//'`
echo "Extracted value: $evt_code"
end

我试图提取“tXX_noTap_”和“tXXX_noTap_”之后的字符串,但它似乎不起作用。对此有任何帮助将不胜感激。谢谢!

sed tcsh
1个回答
0
投票

我猜你已经快到了

在 sed 语句末尾使用“

g
”选项来替换所有出现的情况。 如果您想替换以
^.*
 开头的每个出现,您不想在正则表达式中添加 
tXX_noTap_

前缀
echo "t14_noTap_leftSlow t24_noTap_leftMedium t34_noTap_leftFast \
                                        t44_noTap_rightSlow t54_noTap_rightMedium t64_noTap_rightFast \
                                        t74_noTap_inphaseSlow t84_noTap_inphaseMedium t94_noTap_inphaseFast \
                                        t104_noTap_antiphaseSlow t114_noTap_antiphaseMedium t124_noTap_antiphaseFast" | sed 's/t[0-9]*_noTap_//g'
© www.soinside.com 2019 - 2024. All rights reserved.