已经存在类似的question,但它指的是文件,我的smth更简单。
我需要在第n次出现分隔符后得到一个子字符串(因为出现的要求是“灵活的”)。
让我们说有一个字符串
s ='HLGAPL65.HOU150.CHEVRONTEXACO.NET / UPSTREAM_MDM_D2 / Jobs / Keystone Release 2.0.2.0/0.0。 Loading_SOR_to_Landing / EGI / EGI_WV_WELLHDR.pjb'
分隔符是
/
我需要在分隔符第4次出现后获取子字符串。那就是
0.0。 Loading_SOR_to_Landing / EGI / EGI_WV_WELLHDR.pjb
最简单的一个班轮是什么?
答案 0 :(得分:1)
cut
可以成功:
$ cut -d'/' -f5- <<< "$s"
0.0. Loading_SOR_to_Landing/EGI/EGI_WV_WELLHDR.pjb
它将分隔符设置为/
,并从第5个字段打印到结尾(5-
)。
答案 1 :(得分:0)
使用BASH你可以:
s='HLGAPL65.HOU150.CHEVRONTEXACO.NET/UPSTREAM_MDM_D2/Jobs/Keystone Release 2.0.2.0/0.0. Loading_SOR_to_Landing/EGI/EGI_WV_WELLHDR.pjb'
[[ "$s" =~ ^([^/]*/){4}(.*) ]] && echo "${BASH_REMATCH[2]}"
0.0. Loading_SOR_to_Landing/EGI/EGI_WV_WELLHDR.pjb