簡體   English   中英

sed提取字符串中的子字符串和子字符串的首次出現之間的模式-獲取相對路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM