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 ,
.