2013-03-24 49 views
1

例如串兩個字符串之間匹配:/Volumes/Macintosh HD/Users/test/使用SED

我需要的輸出是卷名,Macintosh HD

我已經試過如下:

echo "/Volumes/testVolume/test/" | sed 's/\/Volumes\/\(.*\)\//\1/g' 

但輸出是:testVolume/test

回答

3

這應該工作:

sed 's#/Volumes/\([^/]*\)/.*#\1#' 

除了使用/來標記搜索和替換表達式,還可以使用任何其他字符。 #是一種常用字符,如果您的搜索或替換表達式中包含字符/

$ sed 's#/Volumes/\([^/]*\)/.*#\1#' <<< "/Volumes/Macintosh HD/Users/test/" 
Macintosh HD 
+0

非常感謝! – user1630543 2013-03-24 21:15:31