2013-07-20 19 views
0
path=/tmp/a1 

file=/tmp/a1/a.txt 

file_without_path=`echo $file | sed s/'\/tmp\/a1'/''/g` 

echo $file_without_path 

在上面的代碼中,我有個問題翻譯「/」使用搜索和替換時命令UNIX:如何通過sed的

如果變量「路徑」是一個動態veriable它允許用戶自我定義

例如,用戶定義的「路徑」爲在/ usr /本地/

然後,我通過這個值做然而搜索和替換

,如果我通過這個值沒有任何干預

程序可以把它當作echo $file | sed s//usr/local/''/g

我試圖用tr -s '/' '\/'但沒有成功

我想問一下,你怎樣才能解決這種情況下

感謝。

回答

1

sed「s」命令的分隔符不需要爲/; sed將用作分隔符,無論什麼後面的「s」:

sed s%'/tmp/a1'%''%g ## no need to worry about escaping slashes any more 
+0

非常感謝。你回答我的問題。 – Newbiee

+0

很高興聽到它。如果它能解決您的問題,您可以考慮接受答案。 ;) –