Ope*_*way 0 string bash perl awk sed
我喜欢用字符串
abc_dsdsds_ss_gsgsdsfsdf_ewew_wewewewewew_adf
Run Code Online (Sandbox Code Playgroud)
我需要得到一个新的,我在原始字符串中删除从"_"开始到最后一次出现的所有内容和下一个字符(可以是3,4,或任何数字)
所以在这种情况下,我会得到
_adf
Run Code Online (Sandbox Code Playgroud)
我怎么能用"sed"或其他bash工具做到这一点?
小智 5
正则表达式模式匹配是贪婪的.因此^.*_将匹配所有字符,包括最后一个_.然后把下划线放回去:
echo abc_dsdsds_ss_gsgsdsfsdf_ewew_wewewewewew_adf | sed 's/^.*_/_/'
Run Code Online (Sandbox Code Playgroud)