[MAC REGEX] Saut de ligne ne fonctionne pas
F_Pignon
Messages postés
23
Statut
Membre
-
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
Bonjour à tous,
J'ai un souci avec les caractères spéciaux quand j'utilise la ligne de commande de la console
(avec Mac OS X, distrib. léopard et le shell est bash)
Par exemple, pour remplacer les espaces par des saut de ligne ou des tabulations sur un fichier, voila ce que ça donne :
au lieu d'avoir respectivement :
Si quelqu'un avait une idée ?
Merci d'avance
J'ai un souci avec les caractères spéciaux quand j'utilise la ligne de commande de la console
(avec Mac OS X, distrib. léopard et le shell est bash)
Par exemple, pour remplacer les espaces par des saut de ligne ou des tabulations sur un fichier, voila ce que ça donne :
>cat fichier.txt je suis un fichier test >sed "s/ /\n/g" fichier.txt | more je\nsuis\nun\nfichier\ntest >sed "s/ /\t/g" fichier.txt | more je\tsuis\tun\tfichier\ttest
au lieu d'avoir respectivement :
>sed "s/ /\n/g" fichier.txt | more je suis un fichier test >sed "s/ /\t/g" fichier.txt | more je suis un fichier test
Si quelqu'un avait une idée ?
Merci d'avance
A voir également:
- [MAC REGEX] Saut de ligne ne fonctionne pas
- Partage de photos en ligne - Guide
- Adresse mac - Guide
- Aller à la ligne excel mac - Guide
- @ Sur mac - Guide
- Comment supprimer une page sur word avec un saut de page ? - Guide
5 réponses
Lorsque tu utilises les expressions régulières il faut ajouter l'option -E (sous mac) ou -e (sous linux).
Par exemple :
sed -E "s/ /\n/g" fichier.txt | more
Par contre, sous mac (et non sous linux), nous ne pouvons pas utiliser le saut de ligne comme adresse (texte de remplacement). Voir "man sed" :
The escape sequence \n matches a newline character embedded in the pattern space. You cannot, however, use a literal newline character in an address or in the substitute command.
Je ne sais pas ce qu'il existe comme solution...
Par exemple :
sed -E "s/ /\n/g" fichier.txt | more
Par contre, sous mac (et non sous linux), nous ne pouvons pas utiliser le saut de ligne comme adresse (texte de remplacement). Voir "man sed" :
The escape sequence \n matches a newline character embedded in the pattern space. You cannot, however, use a literal newline character in an address or in the substitute command.
Je ne sais pas ce qu'il existe comme solution...
Salut,
Essaie comme ça
Essaie comme ça
lami20j@debian:~$ echo je suis un fichier test je suis un fichier test lami20j@debian:~$ echo je suis un fichier test | sed 's/ /\x0A/g' je suis un fichier test
Salut,
L'utilisation de l'option -e est très pratique quand on veut afficher par exemple avec echo
La commande echo ne permet pas de faire un remplacement. La commande echo affiche tout simplement une ligne de texte.
P.S. Pour quel raison éviter d'utiliser Perl?! Ce n'est pas la peste quand même!!!
L'utilisation de l'option -e est très pratique quand on veut afficher par exemple avec echo
$ echo -e "ligne1\nligne2\nligne3" ligne1 ligne2 ligne3Mais la question était : remplacer les espaces par des saut de ligne ou des tabulations sur un fichie
La commande echo ne permet pas de faire un remplacement. La commande echo affiche tout simplement une ligne de texte.
P.S. Pour quel raison éviter d'utiliser Perl?! Ce n'est pas la peste quand même!!!
Re,
Essaie avec perl
Essaie avec perl
lami20j@debian:~$ echo je suis un fichier test je suis un fichier test lami20j@debian:~$ echo je suis un fichier test | perl -ne 's/ /\n/g;print' je suis un fichier test
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question