Проблема в том, что каждый раз, когда выполняется 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
и * _ new3.txt
соответствует только одному имени файла.