[英]sed to extract pattern between a substring and first occurance of a substring in a string - get relative path
我有以下幾行:
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
但這不能按預期工作。
任何想法?
為什么不直接使用而不使用中間變量:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.