2016-03-31 8 views
0

を経由して(スペースを含む)の最近の外付けハードドライブ名を取得しよう:私はMacに接続されている最新のハードドライブを取得するには、このコマンドを使用してきた、端末

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

問題はその後、もしドライブがスペースを持っているということですその外付けハードドライブの最初の単語だけを取得します。 1つの単語があるか複数の単語があるかどうかにかかわらず、ドライブの全体名を取得するにはどうすればいいですか

答えて

1

mount(OSX)の出力は次のとおりです。

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

だから、別のアプローチは、先行スペースを除いた単語on前に、すべてのものを抽出するために(またはスペース、単語onとする他のすべてを削除することです

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

あなたのコマンドに基づいて、デバイス名ではなくマウントポイントに興味があるようです。その場合には、「先頭と末尾の空白を除くontype間の文字を抽出なる:

([^)]*)成分はコーナーケースにマッチング問題を回避する(デバイス名またはマウントポイントは、空間、on、スペースを含む場合) 。

+0

私は 'S'コマンドで$'は '両方以来、役に立たない' '^考える'と* '貪欲です – SLePort

+0

@Kenavoz:。。あなたは、習慣の力正しいとにかく、答えを適応しました。 OSX出力に変換し、式を多少変更してエッジケースをカバーしました。 – isedev

0
mount | tail -1 | sed -e "s/^[^/]*\(.*\) type .*$/\1/g" 
関連する問題