2013-04-29 63 views
0

我將所有css文件連接在一起,並將它們縮小並放入dist目錄中進行分發。我串聯的CSS文件位於各種供應商文件夾中,並且具有相對於其中的css的圖像路徑。如何使用sed將可分發組件中的相關圖像目錄替換爲所有圖像路徑?使用sed替換縮小的CSS中的圖像路徑

在CSS的圖像時,一些可能的路徑...

background-image: url('test/test1/test.png'); 
background: url("test2/test2.png"); 
background-image: url(test3/test3.png); 
background: url (test4/test4.png); 
background: url(" test5/test5.gif"); 
background: url(test.png); 
+0

我已經試過了sed的url |(。*?。png \)| url(\ 1)| g「style.css ...但是當然不起作用。 – 2013-05-02 02:52:28

+0

是你張貼樣本輸入或期望輸出或其他東西?更新您的問題以清楚地顯示具有代表性的樣本輸入以及該輸入的預期輸出。 – 2013-05-02 12:53:14

回答

0

嘗試以下。適用於您的所有示例。

sed "s#\(url\s*(\s*['\"]\?\)\s*\([^/]\)#\1/DIRECTORY/\2#" <in.css >out.css 

這翻譯的意思是

Q1: 「URL」 - 可選空間 - 「(」 - 可選空間,可選的報價

Q2:可選空間

Q3:除了從任何字符一個 「/」(以避免更換絕對URL)

然後,如果所有這些匹配,與Q1取代 - 「/目錄/」 - Q3