Como ordenar arquivos baseados no valor da propriedade json dentro do arquivo?

2

Eu baixei a lista de vídeos via youtube-dl e cada arquivo tem o arquivo .json correspondente que contém certas propriedades. Então, eu gostaria de classificar os arquivos com base na propriedade json selecionada que está dentro do arquivo .json correspondente (por exemplo, pelo número de visualizações count, property: view_count).

Quais ferramentas eu preciso e como isso pode ser alcançado?

    
por kenorb 29.08.2014 / 13:10

1 resposta

2

Você precisaria usar algum analisador JSON da linha de comando , extrair o específico valor para cada arquivo imprimindo e classificando-o pelo valor impresso.

Aqui está o exemplo do script que você pode usar:

ls -1 *.json | tr \n \0 | xargs -0 -L1 -I% sh -c "cat '%' | jshon -e view_count | awk '{print \\" %\"}'" | sort -k 1 -nr

Onde view_count é o nome da sua propriedade json. O script listará os arquivos .json e, para cada arquivo, imprimirá o valor da propriedade JSON view_count e numericamente ordenará pela primeira coluna.

Neste exemplo, você precisa da ferramenta jshon , que pode ser facilmente instalada a partir do gerenciador de pacotes. Ou instale-o a partir da fonte do GitHub.

Depois, você pode modificar livremente o script acima de acordo com suas necessidades. Alguns exemplos:

  • Para imprimir o top 20, adicione: | head -n20
  • Para imprimir vídeos correspondentes em vez de arquivos json, adicione: | sed s/info.json$/mkv/

Links:

por 29.08.2014 / 13:10