同じ名前のファイルをマージする方法を知りたいです。
たとえば、フォルダに次のファイルがあります。
1081713FHN-NA.one_.txt
1081713FHN-NA.second_.txt
1081713UEN-NA.one_.txt
1081713UEN-NA.second_.txt
最初の2つを1つの出力ファイルにマージし、最後の2つを別の出力ファイルにマージしたいと思います。
答え1
希望の出力がどのようなものかを知らないと少し難しいですが、私が知っている限り、2つのステップがあります。ステップ1:ファイルを選択し、ステップ2:ファイルをマージします。これが最初のステップを実行する方法です。
# loop through your one_ files
for file1 in *-NA.one_.txt; do
# get your second_ files
file2=${file1/one_/second_}
# cat them together
cat $file1 $file2 > cat.$file1
# or paste
paste $file1 $file2
done
答え2
for file in `ls`|cut -d"-" -f1
do
cat ${file}-* > ${file}
done
cat
同じディレクトリに別のファイルがないと仮定すると、名前プレフィックスは同じファイルを取得し、同じプレフィックスを持つファイルに出力を送信します。