dennisangemi / frictionless2md

A tool to convert frictionless datapackage (YAML or JSON) to markdown
MIT License
3 stars 0 forks source link

Include title key in Description column #3

Closed dennisangemi closed 1 year ago

dennisangemi commented 1 year ago

ChatGPT Solution

Puoi utilizzare il seguente comando jq da terminale Linux per aggiungere la nuova chiave "join" ai campi esistenti "title" e "description", concatenando i loro valori con due punti ":" quando entrambi i campi sono presenti:

jq '.resources[].schema.fields |= map(if has("title") and has("description") then . + {"join": "\(.title): \(.description)"} elif has("title") then . + {"join": .title} elif has("description") then . + {"join": .description} else . end)' file.json

In questo comando, il file JSON viene passato a jq tramite l'input standard (stdin). Il comando jq seleziona quindi tutti i campi "fields" all'interno di tutti i "resources" e li mappa usando la funzione map(). Dentro la funzione map(), vengono verificate le seguenti condizioni per ogni oggetto campo:

  • se il campo ha sia "title" che "description", allora viene aggiunta una nuova chiave "join" con il valore concatenato di "title" e "description" separati da due punti ":";
  • se il campo ha solo "title", allora viene aggiunta una nuova chiave "join" con il valore di "title";
  • se il campo ha solo "description", allora viene aggiunta una nuova chiave "join" con il valore di "description";
  • se il campo non ha né "title" né "description", allora viene restituito l'oggetto campo originale senza alcuna modifica.

Il risultato finale viene quindi stampato sulla standard output (stdout).