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 :

Intégrer un résultat de commande vers un mot et ligne d'un fichier.


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Par défaut Intégrer un résultat de commande vers un mot et ligne d'un fichier.
    Bonjour à vous j'ai aujourd'hui deux fichiers
    Script A.sh et Afinal.sh

    Le script A demande des informations via des commandes exécuter et lorsque ses commandes sont exécutées j'aimerais les mettre dans le fichier Afinal à une ligne qui est précise.

    Je sais que :

    sed -e '128 r /dev/stdin' Afinal.sh va mettre le résultat de ma commande après la ligne 128
    et que
    sed -i '/argument/a \client' Afinal.sh va mettre le mot "client" après le mot "argument"

    Mais j'aimerai que le résultat de mes commandes sois intégrer comme le fait sed -e'128 r /dev/stdin' Afinal.sh à un seul point près, dans mon fichier Afinal.sh la ligne donc 129 attend le résultat de la commande du fichier A.sh pour la mettre après la commande en ligne 129

    Explication en mode DEV:

    Fichier A.sh actuel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!bin/bash
    cat /etc/passwd | sed -e '128 r /dev/stdin' /tmp/Afinal.sh
    Fichier Afinal.sh actuel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!bin/bash
    for [ true ] ; do
    root:x:0:0:root:/root:/bin/bash
    echo ""
    done
    -------------------------------------------------------------------------------------------------

    Fichier Afinal.sh voulu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!bin/bash
    for [ true ] ; do
    echo "root:x:0:0:root:/root:/bin/bash"
    done
    Quel es la commande que je dois utiliser version SED pour avoir ce résultat ci dessus ?
    Que mon cat /etc/passwd aille bien après la ligne 128 mais au lieu de sauter la ligne, intégrer ce résultat entre les quotes "" de la commande echo.

    Merci à vous j'espère avoir été précis.

    PS : Les commandes citées ne sont pas celles réellement celles du script

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Dj Shorty Voir le message
    Le script A demande des informations via des commandes exécuter et lorsque ses commandes sont exécutées j'aimerais les mettre dans le fichier Afinal à une ligne qui est précise.
    Mouais. Un peu bizarre comme façon de travailler. Généralement on a un script fixe qui fait appel à des paramètres externes (ou à des datas stockées dans un fichier externe) mais on ne fait pas modifier le script par un autre quoi...

    Citation Envoyé par Dj Shorty Voir le message
    Je sais que :

    sed -e '128 r /dev/stdin' Afinal.sh va mettre le résultat de ma commande après la ligne 128
    Non, tel que tu l'as écrit, ça va afficher Afinal.sh jusqu'à la ligne 128 puis ça va lire et afficher le contenu de stdin (donc de ce que tu tapes) puis ça va afficher la fin de Afinal.sh. Il n'y a aucune commande ni aucun résultat ici !!!

    Citation Envoyé par Dj Shorty Voir le message
    Mais j'aimerai que le résultat de mes commandes sois intégrer comme le fait sed -e'128 r /dev/stdin' Afinal.sh à un seul point près, dans mon fichier Afinal.sh la ligne donc 129 attend le résultat de la commande du fichier A.sh pour la mettre après la commande en ligne 129
    A.sh | sed -e '128 r /dev/stdin' Afinal.sh...

    Citation Envoyé par Dj Shorty Voir le message
    PS : Les commandes citées ne sont pas celles réellement celles du script
    Ben oui, ça aurait été trop facile sinon. On te la fait pas à toi hein ?
    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]

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Par défaut
    Très bien dans ce cas là.

    J'ai un Script qui vérifie si un paquet est installer et si il n'est pas installer il s'installe puis est configurer via des echo.
    Une fois le paquet installer et configurer, j'exécute des commandes et ses résultats là j'aimerai qu'ils aillent dans un fichier .sh qui aura une boucle à réaliser, bien sur je peut mettre les résultats sur le même fichier de script mais à quoi sa sert qu'à son exécution par la suite il check si le paquet est installé alors qu'il le sera déjà (ex. Reboot machine).
    D'où le fait de faire deux fichier séparer pour que sa sois plus ranger.

    Je précise juste que les personnes qui vont exécutés le script ne sont pas des lumières et donc tout dois être automatiser de A à Z

    Si tu as une idée j'écoute car tu as l'air expérimenter.

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    Cela ne justifie pas de tirer des fils électriques de la portière jusqu'au moteur pour que la fermeture de la porte démarre la voiture...

    Ce qui est variable, ce sont les données que tu manipules. Pas le processus. C'est pire que du bidouillage, ta méthode.

    Identifie mieux ton besoin.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Par défaut
    Ok mais soyez pas non plus aussi dur que sa non plus pourquoi devenir sévère d'un coup. Bref
    Car je me fait répondre d'incapable pour rien pour le moment.

    En faite j'ai un script pour le moment qui va faire une vérification d'un paquet, si il n'existe pas alors il l'installe cela fonctionne très bien.
    J'ai créer un robot.sh aussi qui fait des actions à la main automatiquement.
    Pour faire plus simple j'ai une application en intra qui tourne mais le soucis c'est que plusieurs action au clique sont à faire sous la machine à des heures pas possible et cela sur plusieurs machines, donc des cliques à des endroits différent. Je n'ai pas trop envie chaque jour de faire ses clique sur les machines, donc je fait un script pour faire cela.
    Mon script fonctionne sur ma machine car je fait les test en post prod, mais voilà j'aimerai pouvoir configurer les coordonnées par machine, car chaque machine à sa résolution et donc les coordonnées sont donc modifiées.

    C'est pour cela que je veut faire un script qui pourrais configurer se robot.sh. Comme sa je n'ai plus qu'à aller sur la machine ouvrir mon appli et lancer mon script qui feras la configuration à lui seul en lançant des commandes.

    Pour le moment ce que j'ai réussit à réaliser c'est créer le script qui vérifie si un icmp est possible sur le web sinon configuration des interfaces, vérifie si le paquet est installer sinon il l'installe ensuite il lance le navigateur avec mon lien intra puis ensuite tous les jours à une heure précise en boucle il va exécuté des cliques avec des temps de pause pour les chargements de pages.
    J'ai testé et cela fonctionne.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 209
    Par défaut
    Ca ressemble à un malware ce que tu explique non ?

    Remarque si cela correspond à un exercice, pas de soucis, mais sinon, c'est nul...

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Dj Shorty Voir le message
    Ok mais soyez pas non plus aussi dur que sa non plus pourquoi devenir sévère d'un coup.
    Je t'assure qu'on est très indulgents. La preuve, c'est qu'on te répond. Parce que ceux qu'on juge irrécupérables à eux on leur met "-1" et on ne leur répond tout simplement pas...

    Citation Envoyé par Dj Shorty Voir le message
    C'est pour cela que je veut faire un script qui pourrais configurer se robot.sh. Comme sa je n'ai plus qu'à aller sur la machine ouvrir mon appli et lancer mon script qui feras la configuration à lui seul en lançant des commandes.
    Et pourquoi tu n'écris pas un "robot.sh" capable de lire ce dont il a besoin dans un fichier de configuration ? Comme ça t'as plus besoin de le modifier. Tout ce que t'as à faire, c'est placer le fichier de config au bon endroit. Et t'as même pas besoin de lancer ce robot.sh si tu le mets dans un cron qui te le lance à ta place. Lors du lancement suivant il prend automatiquement en compte sa nouvelle config et basta...
    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]

Discussions similaires

  1. Redirection de résultat de commande vers un fichier
    Par Julius Cesarus dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 17/01/2010, 13h17
  2. Réponses: 5
    Dernier message: 07/08/2008, 13h01
  3. Réponses: 12
    Dernier message: 04/06/2006, 00h19
  4. Réponses: 13
    Dernier message: 16/11/2005, 13h15
  5. intégrer le résultat de sp_spaceused dans une table
    Par Labienus dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/11/2005, 09h18

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