Isso seria muito mais simples se fosse JSON bem formatado, então você poderia usar uma ferramenta como jshon para interrogar de forma inteligente os dados .
É possível usar awk
, mas depende da saída consistente:
awk 'BEGIN {RS=" entry\("; FS="\""}; /artist/ {artist = $4}; /title/ {title = $4} END { print artist": "title}' spotify_output
Frederic Chopin: Waltz No. 1 in E flat Major, Op. 18
Essencialmente, o arquivo é dividido alterando o separador de registro ( RS
) para os vários blocos de entrada ( entry(
) e os campos dentro desses registros são delimitados alterando o separador de campo ( FS
) de o padrão (um espaço) para as marcas de aspas ( "
) que contêm os valores que você está procurando.
De lá, é apenas correspondência de padrões (por exemplo, /artist/
).