OVH Cloud OVH Cloud

reformater

19 réponses
Avatar
Guillaume Connan
Bonjour,

je coince sur un truc stupide. J'ai 24000 lignes de ce type :



96.415054 275.863953 -1202.638916
95.999008 276.526855 -1202.851685
97.189011 276.127106 -1202.768311

94.813377 278.144073 -1203.200806
94.092697 276.755310 -1202.593994
93.368622 277.369202 -1202.809326

94.092697 276.755310 -1202.593994
94.813377 278.144073 -1203.200806
94.865860 276.759705 -1202.739502


mais je voudrais quelque chose comme ça :

96.415054 275.863953 -1202.638916
95.999008 276.526855 -1202.851685
97.189011 276.127106 -1202.768311
94.813377 278.144073 -1203.200806
94.092697 276.755310 -1202.593994
93.368622 277.369202 -1202.809326
94.092697 276.755310 -1202.593994
94.813377 278.144073 -1203.200806
94.865860 276.759705 -1202.739502

et je ne trouve pas la bonne commande.

--
Guillaume CONNAN

9 réponses

1 2
Avatar
Sébastien Vauban
Bonjour Xavier,

1. je copie les espaces qui vont du début d'une ligne au
premier caractère (exclu) autre que l'espace de cette
même ligne puis je fais un rechercher-remplacer de ce
que j'ai copié par rien :



Il faut sélectionner la région, puis faire :

C-u -16 C-x TAB



Ca ne fonctionnera que pour une ligne/un bloc. D'ou l'utilite
du kill-rectangle.



Hein ?

Si j'applique `C-u -8 C-x TAB' sur les deux blocs suivants
(sélectionnés simultanément, comme une seule région)  :

--8<---------------cut here---------------start------------->8---
123456
789012
345678

901234
567890
--8<---------------cut here---------------end--------------->8---

j'obtiens bien :

--8<---------------cut here---------------start------------->8---
123456
789012
345678

901234
567890
--8<---------------cut here---------------end--------------->8---

J'ai loupé un truc ?

Seb

--
Sébastien Vauban
Avatar
Xavier Maillard
Xavier Maillard writes:

Par exemple, je voudrais tronquer à 3 chiffres après le point les
nombres de ma liste : 96.415054 -> 96.415
-1202.851685 -> -1202.851



Peut-etre avec la fonction coerce ? (M-x coerce).



En fait coerce ne permet pas cela.
Avatar
Xavier Maillard
Sébastien Vauban writes:

Bonjour Xavier,

1. je copie les espaces qui vont du début d'une ligne au
premier caractère (exclu) autre que l'espace de cette
même ligne puis je fais un rechercher-remplacer de ce
que j'ai copié par rien :



Il faut sélectionner la région, puis faire :

C-u -16 C-x TAB



Ca ne fonctionnera que pour une ligne/un bloc. D'ou l'utilite
du kill-rectangle.



Hein ?

Si j'applique `C-u -8 C-x TAB' sur les deux blocs suivants
(sélectionnés simultanément, comme une seule région) :



SNIP

J'ai loupé un truc ?



Non mais moi j'ai appris un truc :)

<mode mauvaise_foi=on>
Cependant je maintient que kill-rectangle est la fonctionnalite a
utiliser pour le cas presente par l'OP.
</mauvaise_foi>
Avatar
Xavier Maillard
Alain Ketterlin writes:

Guillaume Connan writes:

je coince sur un truc stupide. J'ai 24000 lignes de ce type :

97.189011 276.127106 -1202.768311

94.813377 278.144073 -1203.200806


[...]

mais je voudrais quelque chose comme ça :

96.415054 275.863953 -1202.638916
95.999008 276.526855 -1202.851685


[...]

Désolé de faire hors-sujet, mais pourquoi ne pas utiliser un bete
script, par exemple awk (%.3f s'occupe de l'arrondi) :



Parce que !

(je te suggère même M-| pour ne pas être trop off-topic).



Oh le fourbe ! :)
Avatar
Sébastien Vauban
Bonjour Xavier,

Il faut sélectionner la région, puis faire :

C-u -16 C-x TAB



Ca ne fonctionnera que pour une ligne/un bloc. D'ou
l'utilite du kill-rectangle.



Hein ? Si j'applique `C-u -8 C-x TAB' sur les deux blocs
suivants (sélectionnés simultanément, comme une seule
région)[, ca marche...]
J'ai loupé un truc ?



Non mais moi j'ai appris un truc :)



C'est bien l'intérêt du jeu avec Emacs, d'encore apprendre des
trucs tous les jours -- et Dieu sait si tu dois déjà en
connaître un paquet...


<mode mauvaise_foi=on>
Cependant je maintient que kill-rectangle est la fonctionnalite a
utiliser pour le cas presente par l'OP.
</mauvaise_foi>



Ben, moi, de mon côté, j'ai jamais réussi à maîtri ser ces bêtes
(les rectangles)... Jamais vraiment essayé, et donc je passe
sans doute à côté, également, de quelque chose qui pour rait me
servir plus souvent...

Seb

--
Sébastien Vauban
Avatar
Paul Gaborit
À (at) Mon, 08 Sep 2008 09:52:38 +0200,
Guillaume Connan écrivait (wrote):
Tant que j'y suis... une petite question sur replace-regexp.
Le . et le - sont des caractères réservés. Comment les "neutraliser" ?




Le - n'est pas un caractère spécial sauf dans un classes (un truc
entre crochets). Pour que le - perde son staut de caractère spécial
dans un classe, il suffit que ce soit le premier ou le dernier de la
classe.

Le point (.) est lui un caractère spécial sauf dans les classes. Pour
qu'il perde sont caractère spécial il suffit de le préfixer par un
backslash.

Par exemple, je voudrais tronquer à 3 chiffres après le point les
nombres de ma liste : 96.415054 -> 96.415
-1202.851685 -> -1202.851



rechercher : (-?[0-9]+).([0-9][0-9][0-9])[0-9]*
remplacer par : 1.2

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Avatar
Denis Bitouzé
Le lundi 08/09/08 à 13h22,
Sébastien Vauban a écrit :

donc je passe
sans doute à côté, également, de quelque chose qui po urrait me
servir plus souvent...



Si tu dois échanger des colonnes de (nombres|mots), c'est quand mà ªme
l'outil idéal...
--
Denis
Avatar
Sébastien Kirche
Le 8 septembre 2008 à 13:22, Sébastien Vauban vraute :

Ben, moi, de mon côté, j'ai jamais réussi à maîtriser ces bêtes
(les rectangles)... Jamais vraiment essayé, et donc je passe
sans doute à côté, également, de quelque chose qui pourrait me
servir plus souvent...



Les rectangles, je maîtrise pour les fonctions de base comme le cas de
l'OP, ou pour indenter ou préfixer un paquet de lignes avec un texte
donné. Pour le préfixe, on peut aussi y arriver avec un coup de C-M-%
(query-replace-regexp) mais c'est un peu le canon à mouche.

Par contre je n'arrive pas à me mettre aux registres qui doivent bien
être pratiques aussi.
--
Sébastien Kirche
Avatar
Xavier Maillard
Sébastien Kirche
writes:

Par contre je n'arrive pas à me mettre aux registres qui doivent bien
être pratiques aussi.



Je plussoie abondamment. Je les utilise a outrance dans tous les
sens depuis que je les ai (re)decouvert. J'en ai meme defini
quelques uns en dur dans ma configuration (des sortes de bookmark
vers des fichiers souvent acceder ou bien des "layouts" utilises
tres souvent). C'est absolument incroyable toutes les
possibilites offertes par emacs.

emacsement votre.
1 2