0

次の df 出力/でアンダーを検索したい:Mounted on

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      471081708 82857660 364294432  19% /
udev             2046164        4   2046160   1% /dev
tmpfs             822540     1376    821164   1% /run
none                5120        0      5120   0% /run/lock
none             2056344      388   2055956   1% /run/shm
/dev/sdb1      228917696 21117560 195590336  10% /media/xtra

ただし、このコマンド

df | awk -F" " /\// '{print $6 "\t" $4}'

このエラーが発生します

awk: cmd. line:1: ///
awk: cmd. line:1:    ^ unexpected newline or end of string

/の下を検索するにはどうすればよいMounted onですか?

4

2 に答える 2

2

あなたのパターンは引用符の外にありました:

$ df | awk '/\//{print $6 "\t" $4}'

スクリプトの先頭で出力フィールドセパレータを指定することもできます。

$ df | awk 'BEGIN{OFS="\t"}/\//{print $6, $4}'

$ df | awk -v OFS="\t" '/\//{print $6, $4}'

しかし、EdMortonが指摘しているように、すべての行/の見出しの横に少なくとも1つあるので、試合をドロップして、次のように最初の行をスキップできます。

$ df | awk 'NR>1{print $6 "\t" $4}'
于 2013-01-07T17:22:16.360 に答える
1

df 出力の各行には常に/. (タイトル以外)

出力を次のように再フォーマットする場合$6\t$4:

df|awk '{print $6"\t"$4}'

タイトルをスキップするだけのパターンの場合は、次のことができます。

 df|awk 'NR>1{print $6"\t"$4}'

正確に検索したい場合/(ルートパーティション):

df|awk '$6~/^\/$/{print $6"\t"$4}'
于 2013-01-07T17:35:52.847 に答える