如何让sed仅对两个*之间的空格添加转义符?
解决方法
你需要修改sed命令,只对两个*之间的空格添加转义符,同时保留*与@team1之间的空格原样。可以通过两次替换实现:
sed -i "" -e 's/ /\\ /g' -e 's/\\ \(@team1\)/ \1/g' "$SENTRY_OUTPUT_LOCATION"
原理说明
- 第一个替换规则
s/ /\\ /g:先全局将所有空格替换为\(带转义的空格),这会把所有空格都加上转义,包括*与@team1之间的空格。 - 第二个替换规则
s/\\ \(@team1\)/ \1/g:把误添加转义的\ @team1替换回原样@team1,精准修正不需要转义的位置。
效果验证
处理后的内容会变成:
path:*/Tests/XCUITests/The\\ Tests/Test.Test.swift* @team1 path:*/Tests/XCUITests/The\\ Tests/SecondTest.Test.swift* @team1 path:*/Tests/XCUITests/TestActions/ThirdTest.swift* @team1
完全符合需求:两个*之间的空格已添加转义,最后一行*与@team1之间的空格保持原样。
内容的提问来源于stack exchange,提问作者Kwoner
相关产品推荐
相关产品推荐

