Bonjour,
Je travaille sur un script shell qui est censé mettre un caractère à la fin de chaque ligne de tous les fichiers .clh de mon répertoire courant.
Donc pour ça tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part cat $base | sed 's/$/\\/g' >> $fichier
Sauf que ça marche, mais qu'au début du fichier... et de manière aléatoire, y'a des fichiers où ça plante direct...
J'ai voulu tester sur un texte tout prêt pour le poster ici, mais sur le texte, ça a marché.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9ligne1\ ligne2\ \ ligne4\ ligne5 \ ligne 6 \
Alors, je me suis demandé si ce n'était pas un problème de saut de ligne.
Du coup, j'ai essayé ces deux commandes :
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part cat "$fichier.bak" | tr -s '\n' ' ' > "$fichier.txt
Mais ça ne marche pas... Ça ne fait aucun effet sur mes fichiers.
Code : Sélectionner tout - Visualiser dans une fenêtre à part awk 1 RS= ORS="\n" "$fichier.bak
L'extension de mes fichiers est le clh, alors je me suis demandé si y'avait un problème sur ça (pourquoi pas... sachant que les commandes shell sont écrites partout sur le web... l'erreur est ailleurs). J'ai copié les fichiers dans un fichier du même nom, sans l'extension, $base.
Mes fichiers sont du code source.
Et enfin, une dernière question, pourquoi
ça marche et que
Code : Sélectionner tout - Visualiser dans une fenêtre à part tr "(" " " < $1 > toto0123456789
ça me met un fichier vide ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part cat $1 | tr "(" " " > toto0123456789
Merci d'avance !
Partager