awkとexpacを使用したpacsysclean出力の合計の違いは何ですか?

awkとexpacを使用したpacsysclean出力の合計の違いは何ですか?

インストールされているパッケージ(すべて)に関して、私の設定でディスク使用量についてさらに学ぶことができるかどうかを知りたかったです。だから私はアーチを見ています。パックマンのヒント~について維持する。まず、次のことを試してください。

expac -HM -s "%-30n %m" | awk '{s+=$2} END {print s}'
3785.87 (Mb)

私はこれが正しいことを知っています。次に、次のことを試してください。

pacsysclean | awk '{s+=$1} END {print s}'
151634

パイプ演算子の前の2つのコマンドは、wc -l同じ数のパケットを生成します。数値出力は何ですかpacsyscleanawkここでどのように誤用していますか?コマンドの前にオプションの割り当てを試みました。つまり、LC_ALL="C" command私のコマンドとは何の関係もないことを確認しました。ロケール。結果は同じです。

答え1

いいえ、あなたは虐待することではありません。これは(わずかな)虐待に近いですpacsysclean

expac抽出と解析のために明示的に設計アルファデータ:ここで見る結果は正しいです。

pacsysclean実際に解析できるようには意図されておらず、インストールされたサイズに基づいてパッケージを並べ替えます。したがって、パケットサイズがこのしきい値を超えると、単位サイズはMiBとKiBの間で異なり、awk整数列を無分別に合計します。

expac解析とクイックソートに固執してくださいpacsysclean

関連情報