Re: commande sort ou autre : problème si catégorie est à bla…

Top Page

Reply to this message
Author: anne.guilde@free.fr
Date:  
To: guilde
New-Topics: Re: commande sort ou autre : head, tail, grep, sort
Subject: Re: commande sort ou autre : problème si catégorie est à blanc
Le 22/01/2020 à 15:50, guilde.nt@??? a écrit :
> Quoting anne.guilde@???, Wed 22 Jan 2020, 05:37 +0100 CET :
>> Quand le csv vient de mon téléphone, il n'y a pas de catégorie.
>>
>>      $37 {print |& s37 ; next}
>>        close(s37, "to")
>>        while ((s37 |& getline) > 0) print

>>
>> Le script se bloque et attend désespérément
>> Comment gérer dans le awk quand la colonne 37 est à blanc sur toutes les
>> lignes du fichier pour qu'il n'attende pas indéfiniment?
>
>    Plus haut, en ne gardant que les lignes d'intérêt : s'il n'y a pas de
> champ 37, on ne passe pas par '$37 {print...}', donc on n'ouvre jamais
> la pipe bi-directionnelle vers le coprocessus s37. Plus tard, on ferme
> la direction "to" de cette pipe avec close(s37, "to"), qui ne provoque
> pas d'erreur, même si elle n'a jamais été ouverte ; ensuite, on essaie
> de lire la sortie du coprocessus avec "s37 |& getline". C'est là qu'on
> bloque, puisqu'elle n'est pas été ouverte. La correction est simple :

>
> $37 {p37=1 ; print |& s37 ; next} # on marque l'ouverture de s37
> !$37 {p1=1 ; print |& s1 ; next} # pareil pour s1
> END {
>    if (p37) {            <= ligne 79
>      close(s37, "to")
>      while ((s37 |& getline) > 0) print
>    }

>
>    if (p1) {
>      close(s1, "to")
>      while ((s1 |& getline) > 0) print
>    }
> }

>


./tri-csv4: ligne 79: erreur de syntaxe près du symbole inattendu « { »
./tri-csv4: ligne 79: ` if (p37) {'

j'ai modifié
if (p37)
{
     close(s37, "to")        <= ligne 81
     while ((s37 |& getline) > 0) print
}


./tri-csv4: ligne 81: erreur de syntaxe près du symbole inattendu « s37, »
./tri-csv4: ligne 81: `    close(s37, "to")'


Là, je ne sais pas comment résoudre.

Je patauge

Anne