Я использую сценарий жемчуга для преобразования файла в json формат.
Вот то, как сценарий:
perl -MJSON -F, -lane '
print to_json ({
domain => shift @F,
emails => [map {{email =>$_}} @F]
}, {canonical=>1})
' input1.txt' > output.json
То, что я хочу сделать: Я хочу дать входные файлы multiplt сценарию или полной папке, содержащей входные файлы и и получить один единственный вывод.
Скажите, например:
perl -MJSON -F, -lane '
print to_json ({
domain => shift @F,
emails => [map {{email =>$_}} @F]
}, {canonical=>1})
' input1.txt','input2.txt','input3.txt' > output.json
perl -MJSON -F, -lane '
print to_json ({
domain => shift @F,
emails => [map {{email =>$_}} @F]
}, {canonical=>1})
'path/to/inputfolder/containing/inputFiles' > output.json
Как я могу сделать это?
Вы могли использовать a for
цикл:
for file in input{1..3}.txt; do
perl -MJSON -F, -lane '
print to_json ({
domain => shift @F,
emails => [map {{email =>$_}} @F]
}, {canonical=>1})
' "$file" >> output.json
done
Первая строка могла также быть
for file in /path/to/inputfolder/containing/*; do
Принятие всех файлов в containing
входные файлы, Вы хотите продолжить работать.
Не забывайте использовать >> output.json
добавлять в файл, вместо >
, или файл будет перезаписан с каждым повторением цикла.