以下から動画リストをダウンロードしました。YouTube-DL各ファイルには、特定の属性を含む対応する.jsonファイルがあります。したがって、その.jsonファイル内で選択したjson属性に基づいてファイルを並べ替えたいのです(例:ビュー数、属性:view_count)。
私にとって必要なツールは何ですか?これを達成するにはどうすればよいですか?
答え1
少し使うべきですコマンドラインJSONパーサー、印刷によって各ファイルの特定の値を抽出し、印刷された値に基づいてソートします。
以下は、使用できるサンプルスクリプトです。
ls -1 *.json | tr \\n \\0 | xargs -0 -L1 -I% sh -c "cat '%' | jshon -e view_count | awk '{print \$1\" %\"}'" | sort -k 1 -nr
view_count
json属性名はどこにありますか?このスクリプトは.jsonファイルを一覧表示し、最初の列に基づいて数値でソートされた各ファイルのJSON view_count属性の値を出力します。
jshon
この例では、パッケージマネージャから簡単にインストールできるツールが必要です。またはGitHubからインストール源泉。
その後、必要に応じて上記のスクリプトを自由に変更できます。いくつかの例:
- 上位20枚を印刷するには、以下を追加します。
| head -n20
- jsonファイルの代わりにそのビデオを印刷するには、次を追加します。
| sed s/info.json$/mkv/
リンク:
答え2
まず、中間のtsvを作成します。デフォルトでは、ツールはsort
tsvcut
ファイルをサポートします。
また、1行に1つのJSONオブジェクトを含むファイルを生成することをお勧めします。jq
これらをうまく処理できます。
paste <(jq -rc .id < videos.json) <(jq -rc videos.json) | sort -t$'\t' -k1,1 -u | cut -f 2-
これにより、重複項目が記録されたときにソートおよび削除されますstdout
。
リンク: