cat $(ls -1 Apex_*_Latest.csv | sort -nr -k2 -t'_') | awk -F"," '{
if (NR==1){
nfm=NF};
for (i=1;i<=nfm;i++) {
printf $i","};
print ""}' >Apex.csv
Você pode reverter sort nomes de arquivos com base no segundo campo (30,20,10 ..) e cat dos arquivos, de modo que as linhas com o maior número de colunas apareçam primeiro.
Então, com awk você pode obter o maior número de colunas NF da primeira linha NR
if (NR==1){nfm=NF}
Em seguida, execute um loop for até i (número da coluna) maior ou igual a nfm para imprimir valores no campo sem i seguidos de ','. se não houver valor para o campo i th (acontecer quando as colunas forem menores que os arquivos mais recentes), ele imprimirá apenas , .