Команда exec
не раскрывает имена файлов, как это делает оболочка, поэтому cat
просто получает строку checked_*.csv
. Я думаю, что
exec /bin/cat {*}[glob checked_*.csv] > check_all.csv
будет работать лучше (хотя я на Windows). Требуется Tcl 8.5 или более поздняя версия из-за расширения.
Я бы порекомендовал
package require fileutil
::fileutil::writeFile check_all.csv [::fileutil::cat {*}[glob -nocomplain checked_*.csv]]
кстати.