9

巨大なファイルがあり、その大きなファイルをいくつかの小さなチャンクに分割し、分割して征服します。これで、以下のようなファイルのリストを含むフォルダーが作成されました。

output_aa #(the output file done: cat input_aa | python parse.py > output_aa)
output_ab
output_ac
output_ad
...

インデックスの順序に従って、これらのファイルをマージして戻す方法があるのだろうかと思っています。

私はそれを使用してそれを行うことができることを知っています

cat * > output.all 

しかし、私はもっと興味があります別の魔法のコマンドがすでに存在し、分割されています..

4

2 に答える 2

18

魔法のコマンドは次のようになります。

cat output_* > output.all

ファイル名をソートする必要はありません (シェルが既に実行しているため) (*)。

その名前が示すように、cat元の設計は正確にファイルを連結することであり、基本的にsplit.

(*) 編集:

a-z順序が ではない 照合順序を使用する (架空の ?) ロケールを使用する必要がある場合abcdefghijklmnopqrstuvwxyz、問題を解決する 1 つの方法を次に示します。

LC_ALL=C "sh -c cat output_* > output.all"
于 2013-08-22T15:19:16.957 に答える
1

ファイルを連結する方法は他にもありますが、「Linux」には魔法のような「分割の反対」はありません。

もちろん、多くのディストリビューションには異なるツールがあるため、一般的に「Linux」について話すのは少し無理が​​あります (ほとんどのディストリビューションでは、sh、bash、csh、zsh、ksh などのように、デフォルトで既に別のシェルが使用されています)。しかし、少なくとも debian ベースの Linux について話しているのであれば、そのようなツールを提供するディストリビューションは知りません。


並べ替えには、Linux コマンド "sort" を使用できます。

また、stdout のリダイレクトに ">" を使用すると既存のコンテンツが上書きされる可能性があることに注意してください。一方、">>" は既存のファイルに連結されます。


コピーキャットはしたくありませんが、それでもこの回答を完全なものにするため、もちろん、catコマンドについてjlliagreが言ったことも考慮する必要があります(その「cat」はcon-「cat」ファイルになり、効果的に逆にすることが可能になりました)分割コマンド-ただし、それはファイルの同じ順序を使用する場合にのみ提供されるため、正確に「分割の反対」ではありませんが、ほぼ 100% のケースでそのように機能します (詳細については、jlliagre の回答の下のコメントを参照してください))

于 2013-08-22T15:08:14.753 に答える