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 :

Copier une ligne à la fin d'un fichier en respectant les espacements


Sujet :

Shell et commandes GNU

  1. #1
    Expert éminent

    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
    Points : 6 686
    Points
    6 686
    Par défaut Copier une ligne à la fin d'un fichier en respectant les espacements
    Bonjour

    Je désire copier une ligne par exemple celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /dev/da0s1 /mnt/usb msdos rw,noauto 0 0
    dans mon fichier /etc/fstab
    Je procède comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "/dev/da0s1 /mnt/usb msdos rw,noauto 0 0" >> /etc/fstab
    avec un cat /etc/fstab, j'obtiens ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /dev/acd0        /cdrom        cd9660        ro,noauto        0        0
    /dev/da0s1 /mnt/usb msdos rw,noauto 0 0
    Les espacements ne sont pas respectés. Je ne me suis jamais penché sur ce cas de figure. Avez-vous des informations à ce sujet svp ?

    Merci

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Points : 1 111
    Points
    1 111
    Par défaut
    echo -ne "machaine" pour mettre des caractères interprétés ? \n \t ?

  3. #3
    Expert éminent

    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
    Points : 6 686
    Points
    6 686
    Par défaut
    Citation Envoyé par kromartien
    echo -ne "machaine" pour mettre des caractères interprétés ? \n \t ?
    Je ne vois pas vraiment comment faire avec ces caractères interprétés

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Points : 1 111
    Points
    1 111
    Par défaut
    Citation Envoyé par Olivier Regnier
    Je ne vois pas vraiment comment faire avec ces caractères interprétés
    Ce sont des tabulations entre les différents paramètres de la ligne du fstab. Mais avec des espaces ça marche aussi, pas de souci à se faire si ce n'est pour avoir un fstab tiré à quatre épingles.

    man echo :
    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
     
    Si -e est présent, les séquences suivantes sont reconnues :
     
           \0NNN  le caractère dont le code ASCII est NNN en octal
     
           \\     contre-oblique (« backslash »)
     
           \a     alerte (sonnerie)
     
           \b     retour en arrière d’un caractère (« backspace »)
     
           \c     supprimer le saut de ligne final
     
           \f     saut de page
     
           \n     nouvelle ligne
     
           \r     retour chariot
     
           \t     tabulation horizontale
     
           \v     tabulation verticale
    Sinon il doit y avoir un moyen de récupérer le code d'une ligne pour insérer les espaces et tabulations au bon endroit. D'après votre exemple c'est deux tabulations entre chaque "mot".

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 30
    Points
    30
    Par défaut
    il suffit de faire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo -ne "/dev/da0s1 \t  /mnt/usb\t msdos\t rw,noauto\t 0\t 0" >> /etc/fstab
    si tu recupère d'une lecture de fichier utilise la commande
    tr " " "\t"

  6. #6
    Expert éminent

    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
    Points : 6 686
    Points
    6 686
    Par défaut
    Bonjour

    Citation Envoyé par dotmessy
    il suffit de faire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo -ne "/dev/da0s1 \t  /mnt/usb\t msdos\t rw,noauto\t 0\t 0" >> /etc/fstab
    Je suis d'accord avec toi mais cela ne fonctionne pas en csh. Si j'exécute cette commande, j'obtiens le résultat suivant :
    Il doit bien y avoir une astuce

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Points : 1 111
    Points
    1 111
    Par défaut
    La liste des caractères interprétés par csh ou un man echo ? Peut être même que un printf pourrait marcher. Les guillemets sont importants également pour montrer que c'est une chaîne interprétée. Et il faut mettre deux tabulations : \t\t.

  8. #8
    Expert éminent

    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
    Points : 6 686
    Points
    6 686
    Par défaut
    Bonjour
    Citation Envoyé par kromartien
    La liste des caractères interprétés par csh ou un man echo ? Peut être même que un printf pourrait marcher. Les guillemets sont importants également pour montrer que c'est une chaîne interprétée. Et il faut mettre deux tabulations : \t\t.
    Je n'ai pas eu besoin d'indiquer un double \t\t, un simple suffit et effectivement avec un printf, c'est nickel.

    Merci à tous les deux

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

Discussions similaires

  1. [XL-2007] copier une ligne si dans un autre fichier
    Par arctica dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/01/2011, 22h38
  2. Réponses: 2
    Dernier message: 04/07/2008, 14h24
  3. Ajouter une ligne en fin de fichier sans écraser le fichier
    Par Premium dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 05/04/2007, 13h07
  4. copier une ligne d'un fichier
    Par wiss20000 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 01/03/2007, 18h51
  5. comment copier une ligne d'un fichier à un autre
    Par debutant-1 dans le forum C
    Réponses: 14
    Dernier message: 26/06/2006, 21h01

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