Eu tenho um script perl para converter um arquivo de texto em json.
O script é assim:
perl -MJSON -F, -lane '
print to_json ({
domain => shift @F,
emails => [map {{email =>$_}} @F]
}, {canonical=>1})
' input1.txt' > output.json
Esse script grava a saída em um arquivo no formato JSON.
Eu quero saber como eu posso modificar o script para cortar a entrada também.
Aqui está um exemplo:
O arquivo de entrada contém algo como o seguinte:
example.com,[email protected],[email protected],[email protected],[email protected],....
O arquivo JSON de saída será:
{"domain":"example.com",emails:[{email:"[email protected]"},{email:"[email protected]"},.....]}
O ponto (.) significa que há outros e-mails sendo adicionados lá depois.
Agora, o que eu quero é que, se o e-mail exceder 21, o script deverá gravar em uma nova linha no arquivo de saída
Arquivo de entrada:
example.com,[email protected],[email protected],[email protected],[email protected],[email protected]
O resultado deve ser:
{"domain":"example.com",emails:[{email:"[email protected]"},{email:"[email protected]"},.....,{email:[email protected]}]}
{"domain":"example.com",emails:[{email:"[email protected]"},{email:"[email protected]"},.....]}
{"domain":"nextdomain.com",emails:[{email:"[email protected]"},{email:"[email protected]"},.....]}
E o processo continua.