У меня есть скрипт perl для преобразования текстового файла в json. Сценарий выглядит так:
perl -MJSON -F, -lane '
print to_json ({
domain => shift @F,
emails => [map {{email =>$_}} @F]
}, {canonical=>1})
' input1.txt' > output.json
Этот сценарий записывает вывод в файл в формате JSON. Я хочу знать, как я могу изменить скрипт, чтобы нарезать ввод как Что ж. Вот пример: входной файл содержит примерно следующее:
example.com,1@example.com,2@example.com,3@example.com,4@example.com,....
Выходной файл JSON будет:
{"domain":"example.com",emails:[{email:"1@example.com"},{email:"2@example.com"},.....]}
Точка (.) Означает, что есть другие электронные письма добавив туда после.
Теперь, что я хочу иметь, если письмо превышает 21, тогда сценарий должен записать в новую строку в выходном файле
Входной файл:
example.com,1@example.com,2@example.com,3@example.com,4@example.com,....500@example.com
Выход должен быть:
{"domain":"example.com",emails:[{email:"1@example.com"},{email:"2@example.com"},.....,{email:21@example.com}]}
{"domain":"example.com",emails:[{email:"22@example.com"},{email:"23@example.com"},.....]}
{"domain":"nextdomain.com",emails:[{email:"1@nextdomain.com"},{email:"2@nextdomain.com"},.....]}
И процесс продолжается.