次のようなフォルダにたくさんのファイルがあります
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
すべてのJSONを1つのファイルにまとめたいですか?
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
にパイプすることができます
<path to your files> | xargs cat > all.json
find ./ -type f | xargs cat > ../singlefilename
これ、簡単でシンプルにしたいです。
../
エラーを回避するinput file is output file
。