回答:
df
コマンドは、実際にあなたがしたいファイルシステムを特定する引数を受け入れます。したがって、たとえば、df /home
またはを使用できますdf /dev/sda3
。
スクリプトの出力を解析する場合は、df -P
複数行に折り返されないことを保証するために使用します。したがって、たとえば、使用できますdf -Ph /home | tail -n +2
(ただし、スクリプトの出力を解析する場合は、ファイル名にスペースが含まれている可能性に注意してください)
df /home
がヘッダーを提供したいと言った。ユーザーの目的を解釈しています。君の言う通りかもね。あなたは間違っているかもしれません、誰が知っていますか?
tail -n +2
、ヘッダーを削除します。
head
との組み合わせを使用できますtail
。
df -h | head -3 | tail -1
または
df -h | tail -n +3 | head -1
ただしdf
、df
それ自体のオプションからの出力をフィルタリングできるため、外部コマンドを使用する前に最初にそれらを確認する必要があります。
確認してくださいman df
。
Awkはテキスト処理ツールであるため、このタスクに適しています
df -h | awk 'NR == 3'
必ずしも3番目の行を探しているわけではなく、特定のディスク(例/dev/sda3
)または特定のマウントポイント(例/home
)に言及している行を探していると思います。
したがって、出力の順序が変更されて異なる結果が得られる可能性があるため安全ではない3行目を表示する代わりに、コンテンツで出力をフィルターし、特定のパターンに一致する行またはキーワードを含む行のみを表示できます。
このためのツールはgrep
です。
たとえば/dev/sda3
、deviceに関する行が必要な場合は、次のように入力します。
df -h | grep '/dev/sda3'
ホームディレクトリをマウントポイントとして記載する行が必要な場合は、以下を使用します。
df -h | grep '/home'
df -h /dev/sda3
またはdf -h /home
(マウントポイントではない場合でも後者は機能します)。
以下も使用できますperl
。
df -h | perl -ne 'print if $.==3'
$.
あなたが持つN番目のラインを印刷することができるように、現在の行番号ですperl -ne 'print if $.==N'
。