解決策が見つからないようで、狂っているようです。列を印刷するために使用できることを知っています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
タブを使用しません)。