awk で df コマンドの出力を解析する

awk で df コマンドの出力を解析する

で始まるすべての行を一致させた後、出力の最初の行をヘッダーとして保存するにはどうすればよいですか/dev/nvme?

現在はdf2 回呼び出していますが、awk を使用して 1 回のパスで実行したいと思います。

df -h | grep '^Filesystem' && df -h | grep '^/dev/nvme'

望ましい結果は次のとおりです。

Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p2  ...
/dev/nvme0n1p1 ...

答え1

他の人が指摘したように:

df -Ph | awk 'NR == 1 || $0 ~ "^/dev/nvme"'

あるいは、Linux ではdfコマンド ラインでデバイス ファイルを指定することもできます。

df -x devtmpfs -Ph /dev/nvme*

これは、一致するデバイスがマウントされていないときにファイルシステムが表示されないよう-x devtmpfsにするためです。/dev

この-Pオプションは、df列の 1 つが広い場合でも行が分割されないことを保証します。

2 番目の方法の利点は、df出力に対して列の間隔が適切に確保されることです。

関連情報