Ответ 1
find data/ -name '*.json' -exec cat {} \; > uber.json
краткое объяснение:
find <where> \
-name <file_name_pattern> \
-exec <run_cmd_on_every_hit> {} \; \
> <where_to_store>
У меня есть куча файлов, сидящих в папках, таких как
data\A\A\A\json1.json
data\A\A\A\json2.json
data\A\A\B\json1.json
...
data\Z\Z\Z\json_x.json
Я хочу котать все jsons в один файл?
find data/ -name '*.json' -exec cat {} \; > uber.json
краткое объяснение:
find <where> \
-name <file_name_pattern> \
-exec <run_cmd_on_every_hit> {} \; \
> <where_to_store>
Используйте find
чтобы получить все файлы JSON и объединить их.
find data -name '*.json' -exec cat {} + > all.json
Обратите внимание, что это недействительно JSON. Если вы хотите JSON - файл содержат несколько объектов, они должны быть в вмещающем массиве или объекте, так что вам нужно добавить [ ]
вокруг них и положить ,
между каждым из них.
Альтернативно - если у вас есть список ваших файлов, вы можете xargs
это на xargs
<path to your files> | xargs cat > all.json
find ./ -type f | xargs cat > ../singlefilename
Я хотел бы это, легко и просто.
../
избежание ошибки input file is output file
.