使用sed匹配两个字符串

时间:2013-03-24 21:03:59

标签: regex sed

示例字符串:/Volumes/Macintosh HD/Users/test/

我需要输出为卷名Macintosh HD

我尝试了以下内容:

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

但输出为:testVolume/test

1 个答案:

答案 0 :(得分:3)

这应该有效:

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

您可以使用任何其他字符,而不是使用/来标记搜索和替换表达式。如果您的搜索或替换表达式中包含字符#,则/是常用字符。

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