Le 21/01/2020 à 11:22, guilde.nt@??? a écrit :
> Quoting anne.guilde@???, Tue 21 Jan 2020, 02:09 +0100 CET :
>> Le 20/01/2020 à 15:28, nt.guilde@??? a écrit :
>>> awk -F \; -v s37="sort -t ';' -k 37,37 -k 1,1" -v s1="sort -t ';' -k 1,1" '
>>> NR==1 {print ; next}
>>> $37 {print |& s37 ; next}
>> (...)
>> Je viens de tester
>>
awk -F \; -v s37="sort -t ';' -k 37,37 -k 1,1" -v s1="sort -t ';' -k 1,1" '
NR==1 {print ; next}
$37 {print |& s37 ; next}
!$37 {print |& s1 ; next}
END {
close(s37, "to")
close(s1, "to")
while ((s37 |& getline) > 0) print
while ((s1 |& getline) > 0) print
}
' ../csv/2020-01-11_20-59_test-semi-1.csv
>../csv/2020-01-11_20-59_test-semi-1-1.csv
Cela trie !
J'aimerais comprendre ces lignes
NR==1 {print ; next}
Cela écrit la première ligne
$37 {print |& s37 ; next}
Cela écrit les lignes selon le sort de si la colonne 37 a quelque chose
!$37 {print |& s1 ; next}
Cela écrit les lignes selon le sort de si la colonne 37 est vide
Du coup, cela trie et écrit en premier les lignes dont la catégorie est
rempli et cela met les lignes dont la catégorie est vide en dernier en
les triant aussi.
pas mal cette idée si j'ai bien compris
je suis en train de pondre un script bach en mettant en paramètre le
fichier à traiter.
Je teste juste si un paramètre a été donné et si le paramètre est un
fichier csv.
Je crois que la version se ne sera pas testé
merci
Anne