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.
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...
1 2 3 4 5 6 7 8 9
|
ligne1\
ligne2\
\
ligne4\
ligne5
\
ligne 6
\ |
J'ai voulu tester sur un texte tout prêt pour le poster ici, mais sur le texte, ça a marché.
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 :
cat "$fichier.bak" | tr -s '\n' ' ' > "$fichier.txt
et
awk 1 RS= ORS="\n" "$fichier.bak
Mais ça ne marche pas... Ça ne fait aucun effet sur mes fichiers.
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
tr "(" " " < $1 > toto0123456789
ça marche et que
cat $1 | tr "(" " " > toto0123456789
ça me met un fichier vide ?
Merci d'avance !
Partager