示例字符串:/Volumes/Macintosh HD/Users/test/
我需要输出为卷名Macintosh HD
我尝试了以下内容:
echo "/Volumes/testVolume/test/" | sed 's/\/Volumes\/\(.*\)\//\1/g'
但输出为:testVolume/test
答案 0 :(得分:3)
这应该有效:
sed 's#/Volumes/\([^/]*\)/.*#\1#'
您可以使用任何其他字符,而不是使用/
来标记搜索和替换表达式。如果您的搜索或替换表达式中包含字符#
,则/
是常用字符。
$ sed 's#/Volumes/\([^/]*\)/.*#\1#' <<< "/Volumes/Macintosh HD/Users/test/"
Macintosh HD