Shell : redirection de fichier
Résolu/Fermé
ibliss11
Messages postés
49
Date d'inscription
lundi 30 mars 2009
Statut
Membre
Dernière intervention
2 juillet 2012
-
22 nov. 2010 à 17:01
ibliss11 Messages postés 49 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 2 juillet 2012 - 23 nov. 2010 à 07:50
ibliss11 Messages postés 49 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 2 juillet 2012 - 23 nov. 2010 à 07:50
A voir également:
- Shell : redirection de fichier
- Classic shell windows 11 - Télécharger - Personnalisation
- Shell startup windows 10 - Guide
- Efi shell version 2.31 - Forum Programmation
- Ssh secure shell download - Télécharger - Divers Web & Internet
- Startup.nsh shell ✓ - Forum Windows 10
6 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
22 nov. 2010 à 17:29
22 nov. 2010 à 17:29
Salut,
Parce que ">" redirige la sortie standard vers un fichier (et l'écrase par conséquence).
Alors que ">>" redirige la sortie standard vers un fichier en concaténant le tout (ajout).
;-))
Parce que ">" redirige la sortie standard vers un fichier (et l'écrase par conséquence).
Alors que ">>" redirige la sortie standard vers un fichier en concaténant le tout (ajout).
;-))
ibliss11
Messages postés
49
Date d'inscription
lundi 30 mars 2009
Statut
Membre
Dernière intervention
2 juillet 2012
22 nov. 2010 à 18:10
22 nov. 2010 à 18:10
Merci pour votre réponse.
Jusque là je comprends.
Ce que je ne comprends pas c'est pourquoi le fichier devient vide après ce type de commande.
Si il y a redirection de la sortie standard alors monfichier devrait contenir le résultat de la commande, hors il est vide et toutes les données sont perdues.
Plus précisement, hier je cherchais à remplacer tous les sauts de ligne d'un fichier par des espaces.
Comme je n'y arrivais pas avec sed j'ai utilisé tr.
J'ai essayé cette commande :
mais elle ne donne rien.
J'ai du ****** quelque part.
Avez vous une idée ?
Jusque là je comprends.
Ce que je ne comprends pas c'est pourquoi le fichier devient vide après ce type de commande.
Si il y a redirection de la sortie standard alors monfichier devrait contenir le résultat de la commande, hors il est vide et toutes les données sont perdues.
Plus précisement, hier je cherchais à remplacer tous les sauts de ligne d'un fichier par des espaces.
Comme je n'y arrivais pas avec sed j'ai utilisé tr.
J'ai essayé cette commande :
cat monFichier | tr -s '\n' ' ' > monFichier
mais elle ne donne rien.
J'ai du ****** quelque part.
Avez vous une idée ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
22 nov. 2010 à 18:23
22 nov. 2010 à 18:23
La redirection (en sortie) vers le fichier d'entrée n'est jamais souhaitable ;-((
Avec "sed" :
Avec "sed" :
sed -i.bak ':z;N;$! bz;s/\n/ /g' fichier
ibliss11
Messages postés
49
Date d'inscription
lundi 30 mars 2009
Statut
Membre
Dernière intervention
2 juillet 2012
22 nov. 2010 à 18:52
22 nov. 2010 à 18:52
D'accord, c'est noté.
Je vais l'écrire en rouge au dessus de mon lit.
En tout cas la commande marche, je n'ai plus qu'à la comprendre maintenant.
Merci beaucoup zipe31.
À bientôt pour de nouvelles aventures.
Je vais l'écrire en rouge au dessus de mon lit.
En tout cas la commande marche, je n'ai plus qu'à la comprendre maintenant.
Merci beaucoup zipe31.
À bientôt pour de nouvelles aventures.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
22 nov. 2010 à 18:57
22 nov. 2010 à 18:57
:z
Étiquette
N
On ajoute la ligne suivante dans l'espace de travail
$ !b z
Dernière ligne du fichier ($) différente (!) ? On se branche (b) à l'étiquette (:z) et on recommence...
s/\n/ /g
Quand on a atteint la dernière ligne, on exécute la substitution, à savoir : remplacer toutes (g) les fins de ligne (\n) par un espace
;-))
Étiquette
N
On ajoute la ligne suivante dans l'espace de travail
$ !b z
Dernière ligne du fichier ($) différente (!) ? On se branche (b) à l'étiquette (:z) et on recommence...
s/\n/ /g
Quand on a atteint la dernière ligne, on exécute la substitution, à savoir : remplacer toutes (g) les fins de ligne (\n) par un espace
;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ibliss11
Messages postés
49
Date d'inscription
lundi 30 mars 2009
Statut
Membre
Dernière intervention
2 juillet 2012
23 nov. 2010 à 07:43
23 nov. 2010 à 07:43
Mille mercis
ibliss11
Messages postés
49
Date d'inscription
lundi 30 mars 2009
Statut
Membre
Dernière intervention
2 juillet 2012
23 nov. 2010 à 07:50
23 nov. 2010 à 07:50
D'autant plus qu'une fois encore j'aurais pu trouver tout seul :
https://forums.commentcamarche.net/forum/affich-37620122-sed-introduction-a-sed-part-iii
Désolé d'avoir entamé votre crédit patience de la semaine.
Merci encore.
https://forums.commentcamarche.net/forum/affich-37620122-sed-introduction-a-sed-part-iii
Désolé d'avoir entamé votre crédit patience de la semaine.
Merci encore.