我有以下一行:
SF:/Users/someuser/Documents/workspace/project/src/app/somejavascriptfile.js ./coverage/coveragereport.info
我试图在bash中使用sed从上面的绝对路径获取相对路径。
尝试了一堆组合,但没有一个正则表达式似乎正常工作。
这就是我的尝试:
ABSOLUTEPATH=SF:$(echo $PWD | sed 's_/_\\/_g')
sed -i '' 's/.*'$ABSOLUTEPATH'/SF:' ./coverage/coveragereport.info
但这并没有按预期工作。
有什么想法吗?
答案 0 :(得分:1)
为什么不直接这样做,而不必使用中间变量:
sed -E -i '' "s@(SF:)$PWD@\1@" ./coverage/coveragereport.info
或
sed -i '' "s@SF:$PWD@SF:@" ./coverage/coveragereport.info
你现在正在做的事情很好,除了在/
表达式的末尾需要sed
:
ABSOLUTEPATH=SF:$(echo $PWD | sed 's_/_\\/_g')
sed -i '' 's/.*'$ABSOLUTEPATH'/SF:/' ./coverage/coveragereport.info