Bash: problème de protection de texte
Résolu/Fermé
A voir également:
- Bash: problème de protection de texte
- Bash permission non accordée - Forum Shell
- Bingo bash free - Télécharger - Divers Jeux
- Bash écrire dans un fichier - Forum Shell
- Bash path - Astuces et Solutions
- Bash: adduser : commande introuvable ✓ - Forum Debian
3 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
11 août 2010 à 18:20
11 août 2010 à 18:20
Salut,
;-))
$ cat plop /* * Copyright (c) 2010 blablabla * blablabla */ $ while read line;do echo "${line/\//\\}";done < plop \* * Copyright (c) 2010 blablabla * blablabla *\ $
;-))
Salut, merci pour la réponse rapide =)
Le problème dans ce cas, c'est que les /* sont transformés en \*, ce que le compilateur apprécie assez moyennement :D Et de manière général, ça fait aussi planter les commentaires uniligne (commençant par // qui deviennent \//)
PS: En fait j'ai voulu tester dans mon cas et ça pose même un problème supplémentaire:
Il interprète quand même le /* et replace les / apres coup.
Je ne sais pas pourquoi... Le pire étant que j'ai exactement le même morceau de code sur les fichiers .C/.cpp et que la les commentaires sont bien pris en compte correctement (pas d'interprétation des /* alors que c'est aussi un echo "$line" que je fais). Je ne comprend vraiment pas :/
Le problème dans ce cas, c'est que les /* sont transformés en \*, ce que le compilateur apprécie assez moyennement :D Et de manière général, ça fait aussi planter les commentaires uniligne (commençant par // qui deviennent \//)
PS: En fait j'ai voulu tester dans mon cas et ça pose même un problème supplémentaire:
\bin \boot [...] \var * Copyright (c) 2010 blablabla * blablabla */
Il interprète quand même le /* et replace les / apres coup.
Je ne sais pas pourquoi... Le pire étant que j'ai exactement le même morceau de code sur les fichiers .C/.cpp et que la les commentaires sont bien pris en compte correctement (pas d'interprétation des /* alors que c'est aussi un echo "$line" que je fais). Je ne comprend vraiment pas :/
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
Modifié par jipicy le 11/08/2010 à 19:16
Modifié par jipicy le 11/08/2010 à 19:16
Oups sorry :
Édit : Je suis un âne, pas besoin de substitution ;-\
;-\
"${line/\///}"
Édit : Je suis un âne, pas besoin de substitution ;-\
$ while read line;do echo "${line}";done < plop /* * Copyright (c) 2010 blablabla * blablabla */
;-\
Re!
En effet, avec un while ça fonctionne, merci beaucoup =)
Par contre, je ne comprend pas pourquoi avec un :
Ca ne tourne pas de la même manière chez moi. Pourtant ça me semble être la même chose au final (a noter que j'ai bien redéfini l'IFS). Le for et le while de récupèrent pas les lignes sous la même forme?
Enfin l'important c'est qu'au final ca tourne! Merci encore ;)
En effet, avec un while ça fonctionne, merci beaucoup =)
Par contre, je ne comprend pas pourquoi avec un :
for line in $(cat ./plop) do echo "$line" done
Ca ne tourne pas de la même manière chez moi. Pourtant ça me semble être la même chose au final (a noter que j'ai bien redéfini l'IFS). Le for et le while de récupèrent pas les lignes sous la même forme?
Enfin l'important c'est qu'au final ca tourne! Merci encore ;)