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'

":" 뒤에서 볼 수 있듯이 첫 번째 명령은 패키지 이름을 반환하며, 두 번째 명령에서는 패키지의 인기도를 쿼리하는 데 사용할 수 있습니다. 출력이 다음과 같도록 첫 번째 명령을 수정하고 싶습니다.

$ 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의 두 번째 명령의 출력이다. 이와 같은 작업을 수행하는 데 가장 적합한 명령줄 도구는 무엇입니까?

단편: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

관련 정보