新しいファイルにリンクしたい2つのファイルがありますが、他のディレクトリ(a、b、c、g、z)と同じ2つのファイルがあるので、ループを使用してこれを行いたいと思います。私のループは次のとおりです
for i in a b c g z
do
(cd $i/; for i in File_*_best3.txt *_new3.txt; do cat $i > combined.txt; done)
done
しかし、私の結果はcombined.txt
2番目の入力ファイルとまったく同じファイルなので、猫は機能しません。ここで問題は何ですか?
ベストアンサー1
問題は、cat
実行されるたびに出力ファイルが切り捨てられる(空になる)ことです。リダイレクトを使用しているためです>
。
選択する:
for d in a b c g z
do
(cd "$d"; rm -f combined.txt; for i in File_*_best3.txt *_new3.txt; do cat "$i" >>combined.txt; done)
done
または
for d in a b c g z
do
(cd "$d" && cat File_*_best3.txt *_new3.txt >combined.txt)
done
私はそれを仮定し、File_*_best3.txt
1*_new3.txt
つのファイル名とのみ一致します。