名前は同じですが、拡張子が異なる異なる入力.txtファイルと.tsvファイル(ディレクトリ内)を出力ファイルにマージする方法は?
入力:file1.txt
、、、、file2.txt
file1.tsv
file2.tsv
出力: file1.merged
、file2.merged
答え1
そしてzsh
:
ext='(txt|tsv|text|log)'
for f (**/*.$~ext(.)) cat < $f >> $f:t:r.merged
同じディレクトリ内のマージはアルファベット順にソートされます。つまり、before before と beforea/file.txt
に含まれます。b/file.txt
a/file.log
a/file.txt
また、隠しファイル(名前で始まるファイル.
)は考慮されません(D
必要に応じてglob修飾子を追加してください)。
答え2
cat file1.* > file1.merged
cat file2.* > file2.merged