Pacman

使用 awk 的 pacsysclean 與 expac 的輸出之和的差異?

  • November 21, 2014

我正在嘗試查看是否可以在我的設置中了解有關磁碟使用情況的更多資訊 - 關於已安裝的軟體包(全部)。所以我在看 Arch Pacman Tips about maintenance。首先我嘗試:

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

我知道這是對的。然後我嘗試:

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

管道運算符之前的兩個命令wc -l產生相同數量的包。輸出的數字是多少pacsysclean?我awk在這裡有沒有以任何方式濫用?我在命令之前嘗試了一個可選的分配,即LC_ALL="C" command確保它與我的locale無關。結果是一樣的。

不,你沒有濫用 awk;這更像是(稍微)濫用的情況pacsysclean

expac明確設計用於提取和解析alpm 數據:您從中看到的結果是準確的。

pacsysclean並不是真正的可解析的,它只是按安裝的大小對包進行排序。因此,一旦包大小超過該門檻值,單元大小就會在 MiB 和 KiB 之間發生變化,從而awk不加選擇地對整數列求和。

堅持expac用於解析和pacsysclean快速排序。

引用自:https://unix.stackexchange.com/questions/169177