ファイルのマージ - 名前は同じで、拡張子は異なります。

ファイルのマージ - 名前は同じで、拡張子は異なります。

名前は同じですが、拡張子が異なる異なる入力.txtファイルと.tsvファイル(ディレクトリ内)を出力ファイルにマージする方法は?


入力:file1.txt、、、、file2.txtfile1.tsvfile2.tsv

出力: file1.mergedfile2.merged

答え1

そしてzsh

ext='(txt|tsv|text|log)'
for f (**/*.$~ext(.)) cat < $f >> $f:t:r.merged

同じディレクトリ内のマージはアルファベット順にソートされます。つまり、before before と beforea/file.txtに含まれます。b/file.txta/file.loga/file.txt

また、隠しファイル(名前で始まるファイル.)は考慮されません(D必要に応じてglob修飾子を追加してください)。

答え2

cat file1.* > file1.merged

cat file2.* > file2.merged

関連情報