尝试通过终端获取最近的外部硬盘驱动器名称(带空格)

时间:2016-03-31 14:58:16

标签: macos bash shell mount hard-drive

我一直在使用此命令检索连接到mac的最新硬盘:

mount | tail -1 | cut -d' ' -f3

问题是,如果驱动器有空格,那么它只会抓取该外部硬盘的第一个字。 如何获取驱动器的全名,是否有一个单词或多个单词的空格

2 个答案:

答案 0 :(得分:1)

mount(OSX)的输出是:

<device_path> on <mount_point> (<type>,<options_list>)

所以替代方法是在单词on之前提取所有内容,排除前面的空格(或删除空格,单词on以及其他所有内容到行尾):

mount | tail -1 | sed 's/ on .* ([^)]*)$//'

虽然根据您的命令,您似乎对挂载点感兴趣,而不是设备名称。在这种情况下,它会变为&#34;提取ontype之间的字符,不包括前导和尾随空格:

mount | tail -1 | sed '/^.* on \(.*\) ([^)]*)$/\1/'

([^)]*)组件避免了在极端情况下(设备名称或安装点包含空格on,空格)的匹配问题。

答案 1 :(得分:0)

mount | tail -1 | sed -e "s/^[^/]*\(.*\) type .*$/\1/g"