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
Вы можете поменять местами sort
имена файлов на основе второго поля (30,20,10 ..) и cat
файлов, чтобы строки с наибольшим числом столбцов идет первым.
Затем с помощью awk
вы можете получить максимальное количество столбцов NF
из первой строки NR
if (NR == 1) {nfm = NF}
Затем запустите цикл for
до тех пор, пока i
(номер столбца) не будет больше или равно nfm
, чтобы напечатать значения в поле № i
, за которым следует от ','. если нет значения для i
-го поля (бывает, когда столбцы меньше, чем последние файлы), будет напечатано только ,
.