我正在使用 perl 脚本将文件转换为 json 格式。
脚本如下:
perl -MJSON -F, -lane '
print to_json ({
domain => shift @F,
emails => [map {{email =>$_}} @F]
}, {canonical=>1})
' input1.txt' > output.json
我想要做的是:我想为脚本提供多个输入文件或包含输入文件的完整文件夹并获得一个输出。
例如:
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
我怎样才能做到这一点?
答案1
您可以使用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
来附加到文件,而不是>
,否则文件会在循环的每次迭代中被覆盖。