私はこのコマンドを持っています:
$ 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は、リンクとlynxの2番目のコマンドの出力です。そのようなことに適したコマンドラインツールは何ですか?
短編:次の形式の出力を複数行表示するmyc1
があります。
A1: B1$ C1
A2: B2$ C2
A3: B3$ C3
Bi
のような入力を取得してDi
のような出力を提供するmyc2
があります
フォームの結果が得られるようにするにはどうすればよいですか。
A1: B1 D1$ C1
A2: B2 D2$ C2
A3: B3 D3$ C3
ここで、Diはecho Bi | myc2
の結果です。
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