Primeiro, o que vem à minha mente não é nem sed nem awk:
$ tr -d '\n' < file | grep -Po 'requestType : "UUID"\K.*? version : \K[0-9]*'
79
Provavelmente pode ser feito com mais facilidade, especialmente se você puder garantir que "version" vem logo após "requestType".
No caso, se version
não precisar ir atrás de requested Type
, as coisas serão um pouco mais complicadas:
$ tr -d '\n' < file | grep -Po '{.[^}]*?requestType : "UUID".*?}' | grep -Po 'version : \K[0-9]*'
79
Se houver mais seções que correspondam a todas elas, serão impressas:
$ cat file
TESTVAR='
{
icon : "icons/773_l.png",
id : 80,
initialState : true,
isPng : false,
label : "Imagery",
opacity : 1,
version : 79,
requestType : "UUID"
}
,
{
icon : "thisicon",
id : 8080,
initialState : false,
isPng : true,
label : "Boundaries",
opacity : 1,
requestType : "NothingSpecial",
version : 8
}
,
{
icon : "icons/773_l.png",
id : 80,
initialState : true,
isPng : false,
label : "Imagery",
opacity : 1,
requestType : "UUID",
version : 87
}
,
{
icon : "icons/773_l.png",
id : 80,
version : 17,
initialState : true,
isPng : false,
label : "Imagery",
opacity : 1,
requestType : "UUID"
}
,
{
icon : "thisicon",
id : 8080,
requestType : "NothingSpecial",
initialState : false,
label : "Boundaries",
opacity : 1,
version : 18,
isPng : true
}
$ tr -d '\n' < file | grep -Po '{.[^}]*?requestType : "UUID".*?}' | grep -Po 'version : \K[0-9]*'
79
87
17