Je crée une table en emacs org-mode des commandes sunrise-commander à partir du fichier .el (je veux faire une feuille de triche). La liste ressemble à ceci:sed: remplacer plusieurs périodes par un autre caractère
/, j .......... go to directory
p, n .......... move cursor up/down
M-p, M-n ...... move cursor up/down in passive pane
^, J .......... go to parent directory
...
Je veux que cela soit dans une table en mode org avec ce format:
| /, j | go to directory |
| p, n | move cursor up/down |
| M-p, M-n | move cursor up/down in passive pane |
| ^, J | go to parent directory |
...
Org prendra soin de l'espacement; J'ai juste besoin de "| commande | explication |"
Je ne peux pas obtenir sed pour remplacer plusieurs périodes avec un slash vertical. Mes tentatives actuelles ont été comme ceci:
cat in.org | sed -e 's/[.]*/|/g' > out.org
cat in.org | sed -e 's/[.]/|/g' > out.org
cat in.org | sed -e 's/[.*]/|/g' > out.org
Je l'ai déjà utilisé cette option pour remplacer les espaces avant et des barres obliques verticales:
sed -e 's/^[ \t]*/|/g;s/[ \t]*$/|/g'|
Maintenant, je dois juste faire la même chose pour une chaîne de périodes. Je crains de ne pas comprendre assez bien le sed pour qu'il traite des périodes comme une période (et cible une goutte d'entre elles) plutôt que de les traiter comme des wildcards. Le deuxième et le troisième traitent chaque période comme une période, car je finis avec un tas de barres verticales.
Mais le premier semble juste mettre une barre oblique entre chaque caractère, donc je ne sais pas pourquoi il le fait. On dirait que ça revient à agir comme le caractère générique.
Merci pour toute aide.
Merveilleux. C'était en premier et fonctionnait très bien. Maintenant que j'y pense, la syntaxe est logique, même si mon problème était que * correspondait à "1 ou plus", pas 0 ou plus, auquel cas vous aviez raison: j'avais besoin d'une période suivie de 0 ou plusieurs périodes. – Hendy