1

@"df -lH | grep \"/Volumes/*\" | awk '{$1=$2=$3=$4=$5=$6=$7=$8\"\"; print $0 }'"ローカルにマウントされたボリュームのパスを取得するために使用しています。ただし、ボリューム名に 2 つ以上のスペースが含まれている場合 (Leopard 1)。その(awk)出力からスペースを削除します。

出力:

$df -lH

Filesystem     Size   Used  Avail Capacity  Mounted on
/dev/disk0s3    81G    61G    19G    77%    /
/dev/disk0s2    81G    72G   8.2G    90%    /Volumes/Leopard  1  2     3
/dev/disk0s4   158G    47G   111G    30%    /Volumes/Backup  

$ df -lH | grep "/Volumes/*"
/dev/disk0s2    81G    72G   8.2G    90%    /Volumes/Leopard  1  2     3
/dev/disk0s4   158G    47G   111G    30%    /Volumes/Backup  

$ df -lH | grep "/Volumes/*" | awk '{$1=$2=$3=$4=$5=""; print $0}'
     /Volumes/Leopard 1 2 3
     /Volumes/Backup

誰でも私を助けてもらえますか?

4

4 に答える 4

3

デフォルトawkでは、 の出力フィールド セパレータは単一のスペースです。したがって、awkコマンドの出力は完全に期待されています。必要な結果を得るには、ある種の正規表現を使用する必要があるため、代わりに次の方法を試してくださいGNU awk

df -lH | awk '/Volumes/ { sub(/^(\S+\s+){5}/, ""); print }'

またはあなたが持っている場合GNU sed

df -lH | sed -nr '/Volumes/s/^(\S+\s+){5}//p'

結果:

/Volumes/Leopard  1  2     3
/Volumes/Backup  

編集:

残念ながら、区間式をサポートしてBSD/OSX awk いないようです。したがって、最も安全な方法は、次の方法でこれを行うことですawk

df -lH | awk '/Volumes/ { sub(/^[^ ]+ +[^ ]+ +[^ ]+ +[^ ]+ +[^ ]+ +/, ""); print }'

またはでsed

df -lH | sed -n '/Volumes/s/^[^ ]\+ \+[^ ]\+ \+[^ ]\+ \+[^ ]\+ \+[^ ]\+ \+[^ ]\+ \+[^ ]\+ \+//p'

これは移植性も高いはずです!HTH。

編集:

8 列の Mac OSX 10.8 の場合、単純に正規表現を拡張します。

df -lH | awk '/Volumes/ { sub(/^[^ ]+ +[^ ]+ +[^ ]+ +[^ ]+ +[^ ]+ +[^ ]+ +[^ ]+ +/, ""); print }'

またはでsed

df -lH | sed -n '/Volumes/s/^[^ ]\+ \+[^ ]\+ \+[^ ]\+ \+[^ ]\+ \+[^ ]\+ \+//p'
于 2012-12-06T07:51:48.730 に答える
1
df -lH | grep "/Volumes/*" | perl -pe 's/[^\%]*\%//g'

awkでそれを実行したい場合:

df -lH | grep "/Volumes/*"|awk '{gsub(/[^\%]*\%/,"");print}'
于 2012-12-06T08:37:20.733 に答える
1

これは、貪欲でないマッチングをサポートする、、およびmountよりも出力が単純なコマンドを使用すると簡単です。dfperl

:; mount | perl -pe 's/.*? on //;s/ \([^\)]*\)$//'
/
/dev
/Volumes/pro Time Machine 2
/Volumes/b
/Volumes/p
/net
/home

マウントポイントにスペースを入れてボリュームをマウントしていることに注意してください。

于 2012-12-06T07:27:49.233 に答える
0

このコマンドの出力を確認すると、情報を解析して取得するのに役立つ場合があります

mount | column -t
于 2012-12-05T10:01:52.177 に答える