予期しない改行文字を持つawk固有の列

予期しない改行文字を持つawk固有の列

解決策が見つからないようで、狂っているようです。列を印刷するために使用できることを知っていますawk。私のファイルシステムがソートされているため、特定の列を印刷するのに問題があります。

私が実行したときに起こったことは次のとおりですdf

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/vg_root-root
                      36623968   4484592  30278976  13% /
tmpfs                   961312         0    961312   0% /dev/shm
/dev/sda1               516040    102896    386932  22% /boot

1Kブロック列を使用すると、awkファイルシステムの場所の長さによって他の列の値が返されます。デフォルトではこれが起こります。

1K-blocks

4484596
961312
516040

正しい列情報を一覧表示するにはどうすればよいですか?

ベストアンサー1

dfパイプを通して入る場合は、awk代わりにdf -Pパイプを使用してください。特に改行なしで簡単に解析できるように設計されています。ヘッダー行(NR >= 2)をスキップすることを忘れないでください。

奇妙な改行で既存の出力を解析する必要がある場合は、空白で始まるので、連続した行がわかります。

awk '
  NR==1 {next}
  /^ / {print $1}
  !/^ / {print $2}
'

ただし、ファイルシステム名にスペースが含まれているため、列ベースの解析が問題を引き起こす可能性があるいくつかのUNIXバリアントがあります。 、、、df -Pタブを使用しません)。

おすすめ記事