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 :

Insérer du texte dans un fichier


Sujet :

Shell et commandes GNU

  1. #1
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut Insérer du texte dans un fichier
    Bonjour

    Je souhaite insérer deux lignes dans le fichier resolv.conf via la commande echo en une ligne de commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "nameserver 192.168.1.1" >/etc/resolv.conf
    echo "lookup file bind" >/etc/resolv.conf
    Est-ce-possible ?

    J'ai un fichier /etc/myname qui contient le texte:
    Je souhaite rajouter à celui-ci le contenu ".slurp.info" de manière à obtenir:
    crou de mémoire

    Merki

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 197
    Par défaut
    tu peux essayer de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo ".slurp.info >> /etc/myname
    mais il me semble que ça va plutot de donner
    su c'est le cas, tu peux essayer de mettre le resultat de la commande
    more /etc/myname dans une variable $temp
    puis de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo -n temp > /etc/myname
    echo ".slurp.info" >> /etc/myname

  3. #3
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    Suis-je obligé de passer par une variable temporaire pour réaliser cette manipulation ?

  4. #4
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    non tu peux faire directement

    commande >>fichier
    le retour de commande (stdout) est ajouté au fichier.

  5. #5
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    Citation Envoyé par frp31 Voir le message
    non tu peux faire directement

    commande >>fichier
    le retour de commande (stdout) est ajouté au fichier.
    Par défaut, le fichier contient déjà un mot

    Ce que je souhaite, c'est rajouter juste à coté un deuxième mot

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 165
    Par défaut
    Salut,

    avec echo -n ça nerépond pas à ta question ?

    éventuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo -n $(cat Fichier_contenant_l'expression_à_ajouter) >> /etc/myname
    je souhaite insérer deux lignes dans le fichier resolv.conf via la commande echo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo -e "nameserver 192.168.1.1 \nlookup file bind" >> /etc/resolv.conf
    ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    OPTIONS echo
           -e     Interpréter les séquences de caractères précédées d'un backslash
                   \n     saut de ligne

  7. #7
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    Pour la deuxième c'est impec, je n'avais pas pensé à l'option -e (man echo)

    Concernant la première, je ne souhaite pas utiliser un fichier source contenant le mot à rajouter dans le fichier à modifier

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 165
    Par défaut
    hé bien fais simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo -n ".slurp.info" >> /etc/myname
    si tu connais déjà le mot à ajouter

  9. #9
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut


    Par défaut, le fichier /etc/myname contient:
    C'est le nom d'hôte de la machine configuré lors de l'installation

    Ensuite, je dois ajouter .slurp.info à la suite comme suit:
    hors la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo -n ".slurp.info" >> /etc/myname
    me donne:
    ce n'est pas ce que je veux moi

    Merki

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 165
    Par défaut
    je fais un test avec un fichier a qui contient "coucou":

    $ cat a
    coucou
    en ajoutant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo -n ".slurp.info" >> a ; cat a
    donne

    à moins que tu aies une ligne vide en dessous de blinky dans ton fichier ? et si tu essayes de la supprimer ?

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 197
    Par défaut
    Le problème est que ton fichier /etc/myname contient déjà un saut de ligne après la chaine de caractère. et "echo -n" permet simplement de ne pas sauter de ligne après l'affichage du echo.

    en mixan les différentes infos que tu as eu, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo -n $(more /etc/myname) > /etc/myname
    echo ".slurp.info" >> /etc/myname
    du coup, par le premier echo, tu réecrit la ligne contenu dans myname sans le saut de ligne, et avec le deuxième echo, tu rajoute le .slurp.info, en sautant une ligne à la fin...

    j'ai pas testé... je ne suis pas sur que tu puisse directement réecrire dans le fichier /etc/myname, mais sinon tu passe par un fichier temporaire, que tu efface après...
    pas sûr également que le premier echo supprime bien le saut de ligne présent dans le fichier...
    a tester

  12. #12
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    Un grand merci car cela fonctionne

    Merci, merci

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

Discussions similaires

  1. insérer du texte dans un fichier BMP
    Par steph_1 dans le forum C
    Réponses: 3
    Dernier message: 15/11/2013, 12h12
  2. Insérer du texte dans un fichier .txt
    Par maroua_mm dans le forum Qt
    Réponses: 1
    Dernier message: 23/02/2010, 17h54
  3. Insérer une ligne dans un fichier texte sans modifier l'encodage
    Par Benzeghiba dans le forum Framework .NET
    Réponses: 6
    Dernier message: 26/01/2009, 22h34
  4. Insérer du texte dans un GtkTextView depuis un fichier
    Par cassa dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 01/05/2007, 15h35
  5. [Excel] Insérer du texte dans un fichier Excel
    Par Longrais dans le forum Langage
    Réponses: 3
    Dernier message: 15/02/2006, 17h46

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