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

Linux Discussion :

shell copie de ligne


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 106
    Par défaut shell copie de ligne
    Bonjour,

    voici mon probleme :
    lorsque je tape en paramètre toto donc ./script toto
    je voudrais que lors de l'éxecution du script , il cherche si le mot toto est présent dans un fichier nommé param_user et si oui , qu'il copie la ligne dont fait partie toto et le renvoie dans un fichier nommé passwd.
    voici ce que j'ai fais :

    le programme si on tape ./script toto

    #!/bin/bash
    #Ce pg verifie dans un fichier si le mot qu’on a tapé est présent et si oui copier la ligne du mot et le renvoyer dans un fichier nommé passwd.
    # si la commande renvoie un 0 le nom est present dans le fichier
    #si la commande renvoie un 1 le nom n’est pas present dans le fichier


    p=`cat param_user | grep -c $1`
    if [ "$p" = "1" ]
    then
    echo "$1 le login existe bien"

    ==> comment faire pour copier la ligne dont il fait partie et le renvoyer en sortie dans un fichier nomme passwd ( >> passwd )
    je pense que la commande sed m'aiderai et head mais apres avoir essayer de nombreuse fois ca ne marche pas, avez vous des solutions

    else
    echo "erreur login inexistant"
    fi

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 106
    Par défaut
    les lignes du fichier param_user sont comme cela :
    Il y a seulement 3 colonnes séparé par des :
    toto:200:Sr
    roro:305:AD
    etc ....

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 106
    Par défaut
    j'ai trouvé et ca marche

    p=`cat param_user | grep -c $1`
    if [ "$p" = "1" ]
    then
    echo "$1 le login existe bien"
    # je réécris la meme chose sans le -c et c bon
    p=`cat param_user | grep $1`
    else
    echo "erreur login inexistant"
    fi

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 106
    Par défaut
    il y a un autre probleme
    si dans le param_user il y toto rototo ou toto45
    j'ai probleme car il va chercher 3 lignes dans ce cas et quand jexecute il ne le trouve pas ....

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 851
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par monsieur77 Voir le message
    il y a un autre probleme
    si dans le param_user il y toto rototo ou toto45
    j'ai probleme car il va chercher 3 lignes dans ce cas et quand jexecute il ne le trouve pas ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/sh
    p=`grep "^$1$" param_user`
    if [ -n "$p" ]
    then
    echo "$1 le login existe bien"
    # je réécris "p" dans passwd
      echo "$p" >>passwd
    else
       echo "erreur login inexistant"
    fi
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 106
    Par défaut
    non ca ne marche pas

    dans mon fichier param_user toto est deja écrit.
    voici le contenu de mon fichier param_user
    toto:500:mm
    rotot:656:mm
    sampras:888:po
    toto41:666:oi
    et pourtant quand j'éxécute, il affiche toto inexistant

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

Discussions similaires

  1. {VBA Excel}Copie de lignes
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 31/07/2007, 14h26
  2. [Shell] Copie récursive filtrée
    Par vilain_mamuth dans le forum Linux
    Réponses: 5
    Dernier message: 15/07/2007, 17h01
  3. [VBA]Problème de copie de ligne
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/06/2007, 09h47
  4. [VBA-E] Selection et copy de lignes conditionelle.
    Par zeralium dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/03/2007, 17h58
  5. Copie de ligne
    Par h82kev dans le forum SQL
    Réponses: 2
    Dernier message: 06/02/2006, 19h52

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