Unixで人間が読める-hサフィックスとファイルシステムサイズを比較する方法

Unixで人間が読める-hサフィックスとファイルシステムサイズを比較する方法

これを思い出に入れましょう。 10Mまたは50Gまたは50K

ファイルシステムで利用可能なサイズを確認したいと思います。そのために私はdf -hコマンドを使用しています

df -Ph . | awk 'NR==2 {print $4}' 

140Mを得ましたが、入力は10k、10M、10Gのように異なる場合があります。

前任者:

私の入力は20Gで、ファイルシステムで利用可能なメモリは140Mです。

今、これら2つのサイズ(50G> 140M?)を比較して出力をエコーできますか?

ベストアンサー1

ソートで -h を使用することもできます。

はい

$cat <<EOF | sort -h
50G 
140M 
10M
50K
EOF

結果:

50K
10M
140M 
50G 

説明する:

-h, --human-numeric-sort, 人間が読める数値の比較 (例: 2K 1G)

またはbashで:

compare()
{
cat <<EOF | sort -h
$1
$2
EOF
}

set $(compare 50G 140M)
echo "$1 <= $2"

結果:

140M <= 50G

比較を書く別の方法:

compare()
{
echo -e "$1 \0 $2" | sort -zh
}

おすすめ記事