Se você quiser uma saída formatada em JSON adequada:
jq -Rs 'split("\n") |
.[0:-1] |
[ foreach .[] as $customer ( 0; .+1; { name: $customer, id: . } ) ]' ./file
ou mais curto,
$ jq -Rs '[ foreach split("\n")[0:-1][] as $customer ( 0; .+1; { name: $customer, id: . } ) ]' ./file
Com -Rs
, lemos texto bruto não formatado como uma única sequência de caracteres. Isso é dividido em novas linhas em uma matriz com split("\n")
e como obtemos um valor vazio no final da matriz, removemos-lo com .[0:-1]
(isso seleciona todos os elementos do primeiro para o segundo para o último).
Com os mesmos dados de entrada da pergunta, agora temos
[
"customer 1",
"customer 2",
"customer 3"
]
Em seguida, iteramos os valores dessa matriz com cada elemento em $customer
e o iterador em .
e construímos uma matriz de objetos com name
e id
de acordo.
O resultado é
[
{
"name": "customer 1",
"id": 1
},
{
"name": "customer 2",
"id": 2
},
{
"name": "customer 3",
"id": 3
}
]