IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

-bash: syntax error near unexpected token `('


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2015
    Messages : 32
    Points : 11
    Points
    11
    Par défaut -bash: syntax error near unexpected token `('
    Bonjour,
    J'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F';' '{ if (/[0-9][0-9]*%/) x=`echo "$line" | awk '{ gsub(/^.*;(/,"")}' | awk '{gsub(/%).*$/,"")}'`; print $1,";",$2,";",$3,";";$x ; else print $0,";100";}' affiliation1.csv > affiliation.csv
    Pour récupérer le 80 de
    pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise
    J'ai l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -bash: syntax error near unexpected token `('
    J'ai cherché partout autour des (, j'ai remplacé les sed par des gsub, décomposé et recomposée la ligne de code, mais je pense que l'erreur doit se trouver dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x=`echo "$line" | awk '{ gsub(/^.*;(/,"")}' | awk '{gsub(/%).*$/,"")}'`
    Peut-être que ce n'est pas une bonne idée d'imbriquer la recherche du pourcentage dans l'awk, mais je ne sais pas comment récupérer cette valeur autrement :
    il faudrait une boucle
    si tu trouves "%" dans la ligne, alors
    - tu extrait les deux chiffres devant
    - tu affiches avec awk la ligne entière ";" les deux chiffres
    sinon
    - tu affiches la ligne entière brute
    fin si

    de sorte à avoir :
    pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise; 80
    Merci pour votre aide !

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 303
    Points : 12 802
    Points
    12 802
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo 'pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise' | sed 's/[^0-9]*\([0-9]*\)%.*/&\;\1/'
    pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise;80

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 267
    Points : 13 530
    Points
    13 530
    Par défaut
    Bonjour

    • Rappel: Les 'quotes' protègent de tout. Les "doubles quotes" protègent sauf l'interprétation de variables $var ou de trucs comme $(find . -type f).
      Donc, dans ta ligne, il n'y a aucune chance que le ` soit interprété (puisque entre 'quotes'). Dès lors, bash voit arriver des accolades qu'il n'interprète probablement pas comme tu penses. Le reste est à l'avenant.
    • J'ai des doutes sur le but recherché (et si pas de % ? et si 2 % ? ) et la méthode employée (pourquoi awk ?).
    • Voici une proposition:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      $ cat phrase.txt 
      pal231; Gani Aldashev ;Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise
      pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise
      pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise (20%) Ma concierge
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      $ sed '/%/!s@.*@&;100@;s@([0-9]\+%)@&\n@g;:z;s@\([^\n]*\)(\([0-9]\+\)%)\n\(.*\)@\1(\2%)\3\;\2@;t z' phrase.txt 
      pal231; Gani Aldashev ;Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise;100
      pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise;80
      pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise (20%) Ma concierge;80;20

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2015
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo 'pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise' | sed 's/[^0-9]*\([0-9]*\)%.*/&\;\1/'
    pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise;80
    Bonjour,
    Le problème, c'est que je dois parcourir un fichier qui a des milliers de lignes comme celle-ci, qui parfois ont ce pourcentage, parfois non. C'est la raison pour laquelle j'essaie d'extraire ce pourcentage tout en vérifiant que c'est une ligne qui en contient un, sinon je demande d'afficher 100 (%).

    J'ai essayé de remplacer par votre code, mais il semble que ça ne soit pas encore ça : j'ai l'impression qu'il y a un conflit lorsque je mets une commande sed dans une awk

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    MacBook-Pro-de-Elodie:affiliation elodie$ awk -F';' '{ if (/[0-9][0-9]*%/) x=$(sed 's/[^0-9]*\([0-9]*\)%.*/&\;\1/'); print $1,";",$2,";",$3,";"$x ; else print $0,";100"}' affiliation1.csv > affiliation.csv 
    [1] 8792
    -bash: ;1/); print $1,";",$2,";",$3,";"$x ; else print $0,";100"}: No such file or directory
    MacBook-Pro-de-Elodie:affiliation elodie$ awk: syntax error at source line 1
     context is
    	{ if (/[0-9][0-9]*%/) x=$(sed >>>  s/[ <<< 
    awk: illegal statement at source line 1
    awk: illegal statement at source line 1
    	missing }
    	missing )
     
    [1]+  Exit 2                  awk -F';' '{ if (/[0-9][0-9]*%/) x=$(sed 's/[^0-9]*\([0-9]*\)%.*/

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2015
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Bonjour

    • Rappel: Les 'quotes' protègent de tout. Les "doubles quotes" protègent sauf l'interprétation de variables $var ou de trucs comme $(find . -type f).
      Donc, dans ta ligne, il n'y a aucune chance que le ` soit interprété (puisque entre 'quotes'). Dès lors, bash voit arriver des accolades qu'il n'interprète probablement pas comme tu penses. Le reste est à l'avenant.
    • J'ai des doutes sur le but recherché (et si pas de % ? et si 2 % ? ) et la méthode employée (pourquoi awk ?).
    • Voici une proposition:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      $ cat phrase.txt 
      pal231; Gani Aldashev ;Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise
      pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise
      pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise (20%) Ma concierge
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      $ sed '/%/!s@.*@&;100@;s@([0-9]\+%)@&\n@g;:z;s@\([^\n]*\)(\([0-9]\+\)%)\n\(.*\)@\1(\2%)\3\;\2@;t z' phrase.txt 
      pal231; Gani Aldashev ;Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise;100
      pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise;80
      pal231; Gani Aldashev ;(80%) Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise (20%) Ma concierge;80;20

    Merci beaucoup, c'est exactement ce que je cherchais à faire !



    A tout hasard, vous ne sauriez pas comment je peux supprimer les (80%) et autres pourcentages sur la ligne d'origine ?

  6. #6
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 267
    Points : 13 530
    Points
    13 530
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ sed '/%/!s@.*@&;100@;:z;s@(\([0-9]\+\)%)\(.*\)@\2\;\1@;t z' phrase.txt 
    pal231; Gani Aldashev ;Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise;100
    pal231; Gani Aldashev ; Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise;80
    pal231; Gani Aldashev ; Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise  Ma concierge;80;20

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2015
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ sed '/%/!s@.*@&;100@;:z;s@(\([0-9]\+\)%)\(.*\)@\2\;\1@;t z' phrase.txt 
    pal231; Gani Aldashev ;Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise;100
    pal231; Gani Aldashev ; Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise;80
    pal231; Gani Aldashev ; Théorie Économique, Modélisation, Application (THEMA), Université de Cergy-Pontoise  Ma concierge;80;20
    Merci beaucoup !!

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2015
    Messages : 32
    Points : 11
    Points
    11
    Par défaut Encore des problèmes ...
    Bonjour,

    Le résultat que j'obtiens n'étant toujours pas bon, je sollicite à nouveau votre aide. Je vais faire de mon mieux pour expliquer clairement.

    J'ai cet échantillon qui est représentatif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    pba722; Mehmet  Balcilar ;(80%) Ekonomi Bölümü, İşletme ve Ekonomi Fakültesi, Doğu Akdeniz Üniversitesi;(20%) Institut de Préparation à l'Administration et à la Gestion (IPAG)
    pbo388; Marcel  Boumans ;(50%) Faculteit Economie en Bedrijfskunde, Universiteit van Amsterdam;(30%) Erasmus Institute for Philosophy and Economics (EIPE), Erasmus Universiteit Rotterdam;(20%) Tinbergen Instituut
    pba135; Rui Nuno Baleiras ;(95%) Conselho das Finanças Públicas, Government of Portugal;(4%) Núcleo de Investigação em Políticas Económicas (NIPE), Universidade do Minho;(1%) Escola de Economia e Gestão, Universidade do Minho
    pze66; Andreas  Zenthöfer ;Departement Algemene Economie (Department of Economics),  School of Economics and Management,  Universiteit van Tilburg (Tilburg University);CentER for Economic Research,  Universiteit van Tilburg (Tilburg University)
    pco248; Alex  Coad ;(51%) Science and Technology Policy Research (SPRU), School of Business, Management and Economics, University of Sussex;(10%) Laboratory of Economics and Management (LEM), Scuola Superiore Sant'Anna;(10%) Modélisations Appliquées, Trajectoires Institutionnelles, Stratégies Socio-Économiques (MATISSE), Centre d'Économie de la Sorbonne, Université Paris 1 (Panthéon-Sorbonne);(10%) Max-Planck-Institut für Ökonomik, Max-Planck-Gesellschaft;(10%) IKE Gruppen, Institut for Økonomi og Ledelse, Aalborg Universitet;(9%) Ratioinstitutet
    pbe478; Andrew B. Bernard ;Tuck School of Business,  Dartmouth College;National Bureau of Economic Research (NBER);Centre for Economic Policy Research (CEPR)
    pba871; Clint  Ballinger ;
    pbo343; Christa H.S. Bouwman ; Weatherhead School of Management, Case Western Reserve University
    Nous avons donc 0, 1 ou plusieurs affiliations ; et soit des %ages, soit non.

    J'ai utilisé une première commande pour "découper" les affiliations, et les afficher chacune sur une ligne en répétant l'id et le nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    awk -F';'  '{if ( /[0-9][0-9]*%/ ) print $1";"$2";"$3"\n"$1";"$2";"$4"\n"$1";"$2";"$5"\n"$1";"$2";"$6"\n"$1";"$2";"$7"\n"$1";"$2";"$8"\n"$1";"$2";"$9"\n"$1";"$2";"$10; else print $0} ' ./affiliatio_essai.csv  > affiliation_essai.csv
    J'obtiens alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    pba722; Mehmet  Balcilar ;(80%) Ekonomi Bölümü, İşletme ve Ekonomi Fakültesi, Doğu Akdeniz Üniversitesi
    pba722; Mehmet  Balcilar ;(20%) Institut de Préparation à l'Administration et à la Gestion (IPAG)
    pba722; Mehmet  Balcilar ;
    pba722; Mehmet  Balcilar ;
    pba722; Mehmet  Balcilar ;
    pba722; Mehmet  Balcilar ;
    pba722; Mehmet  Balcilar ;
    pba722; Mehmet  Balcilar ;
    pbo388; Marcel  Boumans ;(50%) Faculteit Economie en Bedrijfskunde, Universiteit van Amsterdam
    pbo388; Marcel  Boumans ;(30%) Erasmus Institute for Philosophy and Economics (EIPE), Erasmus Universiteit Rotterdam
    pbo388; Marcel  Boumans ;(20%) Tinbergen Instituut
    pbo388; Marcel  Boumans ;
    pbo388; Marcel  Boumans ;
    pbo388; Marcel  Boumans ;
    pbo388; Marcel  Boumans ;
    pbo388; Marcel  Boumans ;
    pba135; Rui Nuno Baleiras ;(95%) Conselho das Finanças Públicas, Government of Portugal
    pba135; Rui Nuno Baleiras ;(4%) Núcleo de Investigação em Políticas Económicas (NIPE), Universidade do Minho
    pba135; Rui Nuno Baleiras ;(1%) Escola de Economia e Gestão, Universidade do Minho
    pba135; Rui Nuno Baleiras ;
    pba135; Rui Nuno Baleiras ;
    pba135; Rui Nuno Baleiras ;
    pba135; Rui Nuno Baleiras ;
    pba135; Rui Nuno Baleiras ;
    pze66; Andreas  Zenthöfer ;Departement Algemene Economie (Department of Economics),  School of Economics and Management,  Universiteit van Tilburg (Tilburg University);CentER for Economic Research,  Universiteit van Tilburg (Tilburg University)
    pco248; Alex  Coad ;(51%) Science and Technology Policy Research (SPRU), School of Business, Management and Economics, University of Sussex
    pco248; Alex  Coad ;(10%) Laboratory of Economics and Management (LEM), Scuola Superiore Sant'Anna
    pco248; Alex  Coad ;(10%) Modélisations Appliquées, Trajectoires Institutionnelles, Stratégies Socio-Économiques (MATISSE), Centre d'Économie de la Sorbonne, Université Paris 1 (Panthéon-Sorbonne)
    pco248; Alex  Coad ;(10%) Max-Planck-Institut für Ökonomik, Max-Planck-Gesellschaft
    pco248; Alex  Coad ;(10%) IKE Gruppen, Institut for Økonomi og Ledelse, Aalborg Universitet
    pco248; Alex  Coad ;(9%) Ratioinstitutet
    pco248; Alex  Coad ;
    pco248; Alex  Coad ;
    pbe478; Andrew B. Bernard ;Tuck School of Business,  Dartmouth College;National Bureau of Economic Research (NBER);Centre for Economic Policy Research (CEPR)
    pba871; Clint  Ballinger ;
    pbo343; Christa H.S. Bouwman ; Weatherhead School of Management, Case Western Reserve University
    Ce qui évidemment ne va pas.

    J'utilisais ensuite deux commandes (qui je pense devraient être combinées) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sed -i '/%/s@(\([0-9]\+\)%)\(.*\)@\2\;\1@;t' affiliation_essai.csv
    awk -F'[a-z]\n' '{a[$1$2]++;b[$0]=$1$2;} END{for (i in b) print i""int(100/a[b[i]]);}' affiliation_essai.csv > affiliation_e.csv
    qui donnent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    pba722; Mehmet  Balcilar ; Ekonomi Bölümü, İşletme ve Ekonomi Fakültesi, Doğu Akdeniz Üniversitesi;80
    pba722; Mehmet  Balcilar ; Institut de Préparation à l'Administration et à la Gestion (IPAG);20
    pba722; Mehmet  Balcilar ;
    pba722; Mehmet  Balcilar ;
    pba722; Mehmet  Balcilar ;
    pba722; Mehmet  Balcilar ;
    pba722; Mehmet  Balcilar ;
    pba722; Mehmet  Balcilar ;
    pbo388; Marcel  Boumans ; Faculteit Economie en Bedrijfskunde, Universiteit van Amsterdam;50
    pbo388; Marcel  Boumans ; Erasmus Institute for Philosophy and Economics (EIPE), Erasmus Universiteit Rotterdam;30
    pbo388; Marcel  Boumans ; Tinbergen Instituut;20
    pbo388; Marcel  Boumans ;
    pbo388; Marcel  Boumans ;
    pbo388; Marcel  Boumans ;
    pbo388; Marcel  Boumans ;
    pbo388; Marcel  Boumans ;
    pba135; Rui Nuno Baleiras ; Conselho das Finanças Públicas, Government of Portugal;95
    pba135; Rui Nuno Baleiras ; Núcleo de Investigação em Políticas Económicas (NIPE), Universidade do Minho;4
    pba135; Rui Nuno Baleiras ; Escola de Economia e Gestão, Universidade do Minho;1
    pba135; Rui Nuno Baleiras ;
    pba135; Rui Nuno Baleiras ;
    pba135; Rui Nuno Baleiras ;
    pba135; Rui Nuno Baleiras ;
    pba135; Rui Nuno Baleiras ;
    pze66; Andreas  Zenthöfer ;Departement Algemene Economie (Department of Economics),  School of Economics and Management,  Universiteit van Tilburg (Tilburg University);CentER for Economic Research,  Universiteit van Tilburg (Tilburg University)
    pco248; Alex  Coad ; Science and Technology Policy Research (SPRU), School of Business, Management and Economics, University of Sussex;51
    pco248; Alex  Coad ; Laboratory of Economics and Management (LEM), Scuola Superiore Sant'Anna;10
    pco248; Alex  Coad ; Modélisations Appliquées, Trajectoires Institutionnelles, Stratégies Socio-Économiques (MATISSE), Centre d'Économie de la Sorbonne, Université Paris 1 (Panthéon-Sorbonne);10
    pco248; Alex  Coad ; Max-Planck-Institut für Ökonomik, Max-Planck-Gesellschaft;10
    pco248; Alex  Coad ; IKE Gruppen, Institut for Økonomi og Ledelse, Aalborg Universitet;10
    pco248; Alex  Coad ; Ratioinstitutet;9
    pco248; Alex  Coad ;
    pco248; Alex  Coad ;
    pbe478; Andrew B. Bernard ;Tuck School of Business,  Dartmouth College;National Bureau of Economic Research (NBER);Centre for Economic Policy Research (CEPR)
    pba871; Clint  Ballinger ;
    pbo343; Christa H.S. Bouwman ; Weatherhead School of Management, Case Western Reserve University
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    pba135; Rui Nuno Baleiras ; Núcleo de Investigação em Políticas Económicas (NIPE), Universidade do Minho;4100
    pco248; Alex  Coad ; Laboratory of Economics and Management (LEM), Scuola Superiore Sant'Anna;10100
    pco248; Alex  Coad ; Ratioinstitutet;9100
    pbe478; Andrew B. Bernard ;Tuck School of Business,  Dartmouth College;National Bureau of Economic Research (NBER);Centre for Economic Policy Research (CEPR)100
    pco248; Alex  Coad ; IKE Gruppen, Institut for Økonomi og Ledelse, Aalborg Universitet;10100
    pze66; Andreas  Zenthöfer ;Departement Algemene Economie (Department of Economics),  School of Economics and Management,  Universiteit van Tilburg (Tilburg University);CentER for Economic Research,  Universiteit van Tilburg (Tilburg University)100
    pbo388; Marcel  Boumans ; Erasmus Institute for Philosophy and Economics (EIPE), Erasmus Universiteit Rotterdam;30100
    pco248; Alex  Coad ;50
    pba135; Rui Nuno Baleiras ; Conselho das Finanças Públicas, Government of Portugal;95100
    pba722; Mehmet  Balcilar ; Ekonomi Bölümü, İşletme ve Ekonomi Fakültesi, Doğu Akdeniz Üniversitesi;80100
    pbo388; Marcel  Boumans ; Faculteit Economie en Bedrijfskunde, Universiteit van Amsterdam;50100
    pba722; Mehmet  Balcilar ;16
    pba135; Rui Nuno Baleiras ;20
    pba135; Rui Nuno Baleiras ; Escola de Economia e Gestão, Universidade do Minho;1100
    pba722; Mehmet  Balcilar ; Institut de Préparation à l'Administration et à la Gestion (IPAG);20100
    pbo343; Christa H.S. Bouwman ; Weatherhead School of Management, Case Western Reserve University100
    pco248; Alex  Coad ; Science and Technology Policy Research (SPRU), School of Business, Management and Economics, University of Sussex;51100
    pco248; Alex  Coad ; Max-Planck-Institut für Ökonomik, Max-Planck-Gesellschaft;10100
    pbo388; Marcel  Boumans ;20
    pco248; Alex  Coad ; Modélisations Appliquées, Trajectoires Institutionnelles, Stratégies Socio-Économiques (MATISSE), Centre d'Économie de la Sorbonne, Université Paris 1 (Panthéon-Sorbonne);10100
    pbo388; Marcel  Boumans ; Tinbergen Instituut;20100
    pba871; Clint  Ballinger ;100
    alors que je voudrais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    pba722; Mehmet  Balcilar ; Ekonomi Bölümü, İşletme ve Ekonomi Fakültesi, Doğu Akdeniz Üniversitesi;80
    pba722; Mehmet  Balcilar ; Institut de Préparation à l'Administration et à la Gestion (IPAG);20
    pbo388; Marcel  Boumans ; Faculteit Economie en Bedrijfskunde, Universiteit van Amsterdam;50
    pbo388; Marcel  Boumans ; Erasmus Institute for Philosophy and Economics (EIPE), Erasmus Universiteit Rotterdam;30
    pbo388; Marcel  Boumans ; Tinbergen Instituut;20
    pba135; Rui Nuno Baleiras ; Conselho das Finanças Públicas, Government of Portugal;95
    pba135; Rui Nuno Baleiras ; Núcleo de Investigação em Políticas Económicas (NIPE), Universidade do Minho;4
    pba135; Rui Nuno Baleiras ; Escola de Economia e Gestão, Universidade do Minho;1
    pze66; Andreas  Zenthöfer ;Departement Algemene Economie (Department of Economics),  School of Economics and Management,  Universiteit van Tilburg (Tilburg University);50
    CentER for Economic Research,  Universiteit van Tilburg (Tilburg University);50
    pco248; Alex  Coad ; Science and Technology Policy Research (SPRU), School of Business, Management and Economics, University of Sussex;51
    pco248; Alex  Coad ; Laboratory of Economics and Management (LEM), Scuola Superiore Sant'Anna;10
    pco248; Alex  Coad ; Modélisations Appliquées, Trajectoires Institutionnelles, Stratégies Socio-Économiques (MATISSE), Centre d'Économie de la Sorbonne, Université Paris 1 (Panthéon-Sorbonne);10
    pco248; Alex  Coad ; Max-Planck-Institut für Ökonomik, Max-Planck-Gesellschaft;10
    pco248; Alex  Coad ; IKE Gruppen, Institut for Økonomi og Ledelse, Aalborg Universitet;10
    pco248; Alex  Coad ; Ratioinstitutet;9
    pbe478; Andrew B. Bernard ;Tuck School of Business,  Dartmouth College;33
    National Bureau of Economic Research (NBER);33
    Centre for Economic Policy Research (CEPR);34
    pba871; Clint  Ballinger ;100
    pbo343; Christa H.S. Bouwman ; Weatherhead School of Management, Case Western Reserve University;100
    En d'autres termes, il faudrait qu'il découpe chaque ligne selon le nb d'affiliations, et s'il y a un %, l'afficher au bout ; sinon compter le nb d'affi et calculer la fraction proportionnelle à afficher au bout.

    Merci pour votre aide !

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2015
    Messages : 32
    Points : 11
    Points
    11
    Par défaut Debut de réponse ..
    J'ai réussi à obtenir un bon découpage en fonction du nombre de champs avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F';'  '{for (i=3;i<=NF;i++) print $1";"$2";"$i} ' ./affiliatio_essai.csv  > affiliation_essai.csv
    qui me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    pba722; Mehmet  Balcilar ;(80%) Ekonomi Bölümü, İşletme ve Ekonomi Fakültesi, Doğu Akdeniz Üniversitesi
    pba722; Mehmet  Balcilar ;(20%) Institut de Préparation à l'Administration et à la Gestion (IPAG)
    pbo388; Marcel  Boumans ;(50%) Faculteit Economie en Bedrijfskunde, Universiteit van Amsterdam
    pbo388; Marcel  Boumans ;(30%) Erasmus Institute for Philosophy and Economics (EIPE), Erasmus Universiteit Rotterdam
    pbo388; Marcel  Boumans ;(20%) Tinbergen Instituut
    pba135; Rui Nuno Baleiras ;(95%) Conselho das Finanças Públicas, Government of Portugal
    pba135; Rui Nuno Baleiras ;(4%) Núcleo de Investigação em Políticas Económicas (NIPE), Universidade do Minho
    pba135; Rui Nuno Baleiras ;(1%) Escola de Economia e Gestão, Universidade do Minho
    pze66; Andreas  Zenthöfer ;Departement Algemene Economie (Department of Economics),  School of Economics and Management,  Universiteit van Tilburg (Tilburg University)
    pze66; Andreas  Zenthöfer ;CentER for Economic Research,  Universiteit van Tilburg (Tilburg University)
    pco248; Alex  Coad ;(51%) Science and Technology Policy Research (SPRU), School of Business, Management and Economics, University of Sussex
    pco248; Alex  Coad ;(10%) Laboratory of Economics and Management (LEM), Scuola Superiore Sant'Anna
    pco248; Alex  Coad ;(10%) Modélisations Appliquées, Trajectoires Institutionnelles, Stratégies Socio-Économiques (MATISSE), Centre d'Économie de la Sorbonne, Université Paris 1 (Panthéon-Sorbonne)
    pco248; Alex  Coad ;(10%) Max-Planck-Institut für Ökonomik, Max-Planck-Gesellschaft
    pco248; Alex  Coad ;(10%) IKE Gruppen, Institut for Økonomi og Ledelse, Aalborg Universitet
    pco248; Alex  Coad ;(9%) Ratioinstitutet
    pbe478; Andrew B. Bernard ;Tuck School of Business,  Dartmouth College
    pbe478; Andrew B. Bernard ;National Bureau of Economic Research (NBER)
    pbe478; Andrew B. Bernard ;Centre for Economic Policy Research (CEPR)
    pba871; Clint  Ballinger ;
    pbo343; Christa H.S. Bouwman ; Weatherhead School of Management, Case Western Reserve University
    C'est assez urgent, je continue à me retourner la cervelle ...

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2015
    Messages : 32
    Points : 11
    Points
    11
    Par défaut
    J'ai finalement résolu la question moi-même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #on découpe les lignes par affiliation :
    awk -F';'  '{for (i=3;i<=NF;i++) print $1";"$2";"$i} ' ./affiliatio.csv  > affiliatiox.csv 
     
    on extrait le %age : 
    sed -i '/%/!s@.*@&;@;:z;s@(\([0-9]\+\)%)\(.*\)@\2\;\1@;t z' affiliatiox.csv
    grep -v '^.*;[0-9][0-9]*$' affiliatiox.csv | awk -F';' '{a[$1$2]++;b[$0]=$1$2;} END{ for (i in b) print i""int(100/a[b[i]]);}' > affiliation_a.csv
    grep '^.*;[0-9][0-9]*$' affiliation_essai.csv > affiliation_b.csv
    cat affiliation_[a-z].csv > affiliation.csv
    Je me doute que ce n'est pas la méthode la plus efficace, mais c'est une méthode qui semble fonctionner, et je ne suis pas capable d'optimiser ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2008] Incorrect syntax error near '.'. in SQL server
    Par lalves dans le forum Développement
    Réponses: 18
    Dernier message: 29/04/2014, 15h22
  2. syntax error near unexpected token `fichier'
    Par kass28 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 16/03/2010, 14h57
  3. erreur : syntax error near unexpected token
    Par lapinou8430 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 28/04/2009, 00h30
  4. [sh] syntax error near unexpected token `}'
    Par vercin dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 18/09/2007, 11h33
  5. [dump SQL] syntax error near 'ENGINE=MyISAM
    Par pierrot10 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 27/09/2006, 12h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo