Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/06/2007, 13h31   #1
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
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 :
/dev/da0s1 /mnt/usb msdos rw,noauto 0 0
dans mon fichier /etc/fstab
Je procède comme suit :
Code :
echo "/dev/da0s1 /mnt/usb msdos rw,noauto 0 0" >> /etc/fstab
avec un cat /etc/fstab, j'obtiens ceci :
Code :
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
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2007, 13h55   #2
Membre émérite
 
Inscription : juin 2006
Messages : 1 117
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2006
Messages : 1 117
Points : 989
Points : 989
echo -ne "machaine" pour mettre des caractères interprétés ? \n \t ?
kromartien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2007, 15h22   #3
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
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
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2007, 16h14   #4
Membre émérite
 
Inscription : juin 2006
Messages : 1 117
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2006
Messages : 1 117
Points : 989
Points : 989
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 :
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".
kromartien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 07h05   #5
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 25
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 25
Points : 28
Points : 28
il suffit de faire cela :

Code :
 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"
dotmessy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 09h14   #6
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Bonjour

Citation:
Envoyé par dotmessy
il suffit de faire cela :
Code :
 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
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 09h23   #7
Membre émérite
 
Inscription : juin 2006
Messages : 1 117
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2006
Messages : 1 117
Points : 989
Points : 989
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.
kromartien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 09h53   #8
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
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
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h52.


 
 
 
 
Partenaires

Hébergement Web