Archlinuxパッケージサイズと人気度の比較

Archlinuxパッケージサイズと人気度の比較

私は次のコマンドを持っています:

$ expac -SsH M "%m: %n$\t%d" lynx | sort -h | tr '$' '\n'
7.24 MiB: links
    A text WWW browser, similar to Lynx
4.99 MiB: lynx
    A text browser for the World Wide Web

クエリに一致する Archlinux パッケージのパッケージサイズを返します。人気度を返す次のコマンドもあります。

$ curl -s 'https://pkgstats.archlinux.de/api/packages/lynx'
---> $ curl -s 'https://pkgstats.archlinux.de/api/packages/lynx' | jq '.popularity'

":"の後ろに示すように、最初のコマンドはパッケージ名を返し、2番目のコマンドはパッケージの人気度を照会するために使用できます。出力が次のように最初のコマンドを変更したいと思います。

$ magic_command
7.24 MiB: links 15.65
    A text WWW browser, similar to Lynx
4.99 MiB: lynx 31.02
    A text browser for the World Wide Web

そのうちの15と31は、それぞれlinkとlynxの2番目のコマンドの出力です。このようなタスクを実行するのに最適なコマンドラインツールは何ですか?

フラグメント:myc1次の形式の複数行出力があります。

A1: B1$ C1
A2: B2$ C2
A3: B3$ C3

私はmyc2このような入力を持っており、Bi次のような出力を提供します。Di

次の形式の結果を得るにはどうすればよいですか?

A1: B1 D1$ C1
A2: B2 D2$ C2
A3: B3 D3$ C3

ここで、Diは次の結果である。echo Bi | myc2

ベストアンサー1

freenode#bashの人々がこのスクリプトを書くのを助けました。

cmppkgs(){
    local IFS="|" a b c d;
    while IFS='?' read -r a b c; do 
        d=$(curl -s "https://pkgstats.archlinux.de/api/packages/$b" | jq .popularity);
        echo "$a?$b?$d?$c"; 
    done < <(expac -SsH M "%m?%n?%d" "$*" | sort -h ) | column -t -s'?' 
}

次のように使用できます。

$ cmppkg lynx w3m
2.02 MiB  w3m    32.21  Text-based Web browser as well as pager
4.99 MiB  lynx   31.02  A text browser for the World Wide Web
7.24 MiB  links  15.64  A text WWW browser, similar to Lynx

おすすめ記事