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 :

Une variable annule le retour a la ligne de la commande associee


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Katowice
    Inscrit en
    Octobre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Pologne

    Informations professionnelles :
    Activité : Katowice

    Informations forums :
    Inscription : Octobre 2015
    Messages : 17
    Par défaut Une variable annule le retour a la ligne de la commande associee
    Bonjour a tous,
    je m’entraîne a faire des petits scripts, mais je bloque sur quelque chose ..
    J'ai téléchargé un fichier. Puis je fais une recherche dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pdfgrep 'Euro |CpeMonde ' Liste_A4_1n2.pdf
    La commande me retourne :

    F Football - Euro (Q) GrA fin de validation : 20:40
    F Football - Euro (Q) GrA fin de validation : 20:40
    F Football - Euro (Q) GrB fin de validation : 20:40
    F Football - Euro (Q) GrH fin de validation : 20:40
    F Euro (Q) GrA 20:40 Lettonie-Kazakhstan 28 2,05 3,10 3,35 29 [0:1] 3,70 3,30 1,60 30 2,65 1,90 3,75
    Euro (Q) GrH 20:40 Bulgarie-Azerbaïdjan 43 1,55 3,50 5,75 44 [0:1] 2,50 3,00 2,15 45 2,10 2,00 5,10
    Euro (Q) GrB 20:40 Belgique-Israël 37 1,30 4,70 8,00 38 [0:1] 1,80 3,20 3,00 39 1,70 2,25 6,75
    CpeMonde (Q)GrH 16:55 Bahreïn-Philippines 472 1,40 3,65 6,25 473 [0:1] 2,20 3,05 2,40 474 1,95 2,05 5,60
    CpeMonde (Q)GrF 13:55 Viêt-Nam-Thaïlande 463 3,40 3,05 1,90 464 [1:0] 1,65 3,25 3,50 465 3,90 1,95 2,50
    CpeMonde (Q)GrE 13:55 Singapour-Cambodge 454 1,07 6,50 17,5 455 [0:1] 1,33 3,90 5,10 456 1,35 2,85 12,5
    CpeMonde (Q)GrG 13:55 Myanmar-Laos 466 1,65 3,55 3,85 467 [0:1] 2,60 3,45 1,90 468 2,30 2,25 3,50
    F CpeMonde (Q)GrG 18:25 Koweït-Liban 469 1,40 3,50 6,25 470 [0:1] 2,25 2,80 2,25 471 2,00 2,00 5,80
    CpeMonde (Q)GrC 13:55 Bhutan-Hongkong 442 nd nd nd 443 [1:0] 6,75 5,10 1,10 444 nd nd nd
    CpeMonde (Q)GrD 14:55 Turkménistan-Guam 448 1,30 4,15 7,25 449 [0:1] 1,90 3,20 2,75 450 1,75 2,20 6,25
    CpeMonde (Q)GrB 15:55 Kirghizistan-Bangladesh 427 1,16 4,95 12,0 428 [0:1] 1,60 3,20 3,70 429 1,55 2,35 9,50
    CpeMonde (Q) 22:55 Equateur-Bolivie 10 1,17 5,50 14,0 11 [0:1] 1,58 3,15 4,00 12 1,53 2,30 10,5
    V Euro (H) 2015 16:25 Pays-Bas-Slovénie 920 1,45 nd 2,25
    Mais lorsque j'attribue ma commande a une variable dans un script, et que j'utilise echo sur cette variable :
    competition=`pdfgrep 'Euro |CpeMonde ' Liste_A4_1n2.pdf `
    echo $competition
    Ça me retourne :

    F Euro (Q) GrA 20:40 Lettonie-Kazakhstan 28 2,05 3,10 3,35 29 Euro (Q) GrH 20:40 Bulgarie-Azerbaïdjan 43 1,55 3,50 5,75 44 Euro (Q) G
    rB 20:40 Belgique-Israël 37 1,30 4,70 8,00 38 CpeMonde (Q)GrH 16:55 Bahreïn-Philippines 472 1,40 3,65 6,25 473 CpeMonde (Q)GrF 13:55
    Viêt-Nam-Thaïlande 463 3,40 3,05 1,90 464 CpeMonde (Q)GrE 13:55 Singapour-Cambodge 454 1,07 6,50 17,5 455 CpeMonde (Q)GrG 13:55 Myanm
    ar-Laos 466 1,65 3,55 3,85 467 F CpeMonde (Q)GrG 18:25 Koweït-Liban 469 1,40 3,50 6,25 470 CpeMonde (Q)GrC 13:55 Bhutan-Hongkong 442
    nd nd nd 443 CpeMonde (Q)GrD 14:55 Turkménistan-Guam 448 1,30 4,15 7,25 449 CpeMonde (Q)GrB 15:55 Kirghizistan-Bangladesh 427 1,16 4,
    95 12,0 428 CpeMonde (Q) 22:55 Equateur-Bolivie 10 1,17 5,50 14,0 11 V Euro (H) 2015 16:25 Pays-Bas-Slovénie 920 1,45 nd 2,25

    Comment faire pour que la commande réalisée par la variable donne la même forme que la commande lancée directement en ligne de commande, c'est a dire qu'elle respecte le format du fichier avec les retour a la ligne ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 663
    Par défaut
    Bonjour,

    il faut toujours mettre ses variables entre guillemets, lors de l'affichage.
    à moins de savoir pourquoi on ne le veut pas.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Homme Profil pro
    Katowice
    Inscrit en
    Octobre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Pologne

    Informations professionnelles :
    Activité : Katowice

    Informations forums :
    Inscription : Octobre 2015
    Messages : 17
    Par défaut
    Ahh super !
    Désolé, je suis sur que ça a du être une question bête pour vous .. mais j'ai vraiment galéré a essayer de trouver .. =D
    Par contre que j'essaye d'envoyer le résultat dans un fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "$competition1" > prono
    Ça me met :

    restricted: cannot redirect output.


    Une idee ? ..

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 663
    Par défaut
    il semble que tu utilises un shell restreint, qui ne t'autorise pas à rediriger la sortie d'une commande vers un fichier.
    pourquoi ?...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre averti
    Homme Profil pro
    Katowice
    Inscrit en
    Octobre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Pologne

    Informations professionnelles :
    Activité : Katowice

    Informations forums :
    Inscription : Octobre 2015
    Messages : 17
    Par défaut
    Je m'entraine sur koding.com ..
    En fait, je voudrais sélectionner une colonne en particulier (la troisième par exemple) avec while/do/done sur le résultat donne par "$competition1".
    Mais peu importe ce que j'essai, j'ai un message d'erreur ..
    Mon script :

    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
    echo 'Bonjour, nous allons voir la liste des matchs disponibles pour aujourdhui'
    echo 'Il va peut etre falloir telecharger un fichier (pdf), tu es ok ?'
    read reponse
    if [ $reponse =  non ]
    then
    exit
    fi
    fichierp=`find $HOME -name "Liste_A4_1n2.pdf" | wc | awk '{print$1}'`
    if [ $fichierp -eq 0 ]
    then
    echo "
     
     
    "
    wget https://www.parionssport.fr/generated/game/sportpdv1n2/Liste_A4_1n2.pdf
    fi
     
    date=`date | awk '{print$3}'`
    datefi=`ls -ltr | grep "Liste_A4_1n2.pdf" |  awk '{print$7}'`
     
    if [ $date -eq $datefi ]
    then
    echo " "
    else
    wget https://www.parionssport.fr/generated/game/sportpdv1n2/Liste_A4_1n2.pdf
    fi
     
    #FIN DE LA VERIFICATION POUR OBTENIR LA LISTE DU JOUR.                                                                               
     
    #"Euro " ; "CpeMonde " ; "Ligue 1" ; "Ligue 2" ; "Serie A"  
    competition1=`pdfgrep 'Euro |CpeMonde ' Liste_A4_1n2.pdf | sed -e '/^ F/d;/^    F/d' `                                               
     
    while read line; do  
    awk '{print$3}' "$line"                                                                                                              
    done < "$competition1"

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 663
    Par défaut
    un message d'erreur
    lequel ? toujours le même ?
    parce que là, il n'y a plus de redirection...
    c'est probablement awk qui braille qu'il ne comprend ce que tu lui demandes.

    PS : on ne pipe pas date pour extraire les informations qu'on veut : on utilise l'option de formatage. Et c'est pareil pour wc.
    ON N'UTILISE PAS ls DANS UN SCRIPT !!!
    dans ton cas : help test !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Suppression du premier champ et des retours à la ligne d'une variable
    Par Bktero dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 12/05/2011, 10h32
  2. Supprimer des retour à la ligne dans une variable
    Par havany dans le forum Langage
    Réponses: 3
    Dernier message: 28/01/2010, 12h12
  3. Retour à la ligne dans une variable
    Par kanzarih dans le forum Langage
    Réponses: 6
    Dernier message: 31/03/2009, 13h02
  4. [bash] Construire une variable texte avec retours chariot
    Par vallica dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 21/03/2008, 12h46
  5. Réponses: 9
    Dernier message: 21/02/2007, 13h20

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