14個のファイルがあり、すべて1つのテキストで構成されています。私はそれらを一つにまとめたいと思います。どうすればいいですか?
ベストアンサー1
技術的にはcat
("connect")実行する必要がありますが、ほとんどの人はファイルを標準出力に出力するためにのみ使用します。複数のファイル名を指定すると順番に出力され、新しいファイルにリダイレクトできます。すべてのファイルであれば使用できます./*
(または/path/to/directory/*
そのディレクトリにない場合)。シェルはそれをすべてのファイルに拡張します。ファイル名(デフォルトでは隠しファイルを除く)。
$ cat ./* > merged-file
globを拡張するために、csh
またはシェルを使用していないことを確認してください。tcsh
後ろにmerged-file
以前に存在しなかった出力の機能をオンにしますmerged-file
。そうしないと、ファイルシステムをいっぱいにする無限ループが発生する可能性があります。
ファイルのリストは語彙順にソートされます。を使用している場合は、zsh
glob修飾子を使用して順序を変更できます(番号、年齢、サイズなど)。
サブディレクトリにファイルを含めるには、次を使用します。
find . ! -path ./merged-file -type f -exec cat {} + > merged-file
ただし、ファイルのリストは並べ替えられず、隠しファイルが含まれていることに注意してください。-type f
これは以下に限定されます。定期的な他の種類のファイルを含める可能性が低いからです。 GNUを使用すると、通常のファイルへのシンボリックリンクも含めるようにfind
変更できます。-xtype f
zshシェルを使用して、
cat ./**/*(-.) > merged-file
同じことを行います((-.)
実装と同じです-xtype f
)、ソートされたリストを提供し、隠しファイルを除外します(D
再インポートするには修飾子を追加します)。zargs
この問題を解決するために使用できますパラメータリストが長すぎます。間違い。