web-dev-qa-db-ja.com

再帰猫はすべてのファイルを単一のファイルに

次のようなフォルダにたくさんのファイルがあります

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つのファイルにまとめたいですか?

45
Fraz
find data/ -name '*.json' -exec cat {} \; > uber.json

簡単な説明:

find <where> \
  -name <file_name_pattern> \
  -exec <run_cmd_on_every_hit> {} \; \
    > <where_to_store>
85
Pavel

findを使用して、すべてのJSONファイルを取得し、それらを連結します。

find data -name '*.json' -exec cat {} + > all.json

これは有効なJSONではないことに注意してください。 JSONファイルに複数のオブジェクトを含める場合は、それらを含む配列またはオブジェクトにする必要があるため、それらの周りに[ ]を追加し、それぞれの間に,を配置する必要があります。

12
Barmar

または、ファイルのリストがある場合は、xargsにパイプすることができます

<path to your files> | xargs cat > all.json
10
csiu
find ./ -type f | xargs cat > ../singlefilename

これ、簡単でシンプルにしたいです。

../エラーを回避するinput file is output file

3
LuciferJack