Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

10 réponses

1 2
Avatar
Nicolas Matringe
Guillaume Connan a écrit :
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

mais je voudrais quelque chose comme ça :

96.415054 275.863953 -1202.638916
95.999008 276.526855 -1202.851685

et je ne trouve pas la bonne commande.




Salut
Alors euh comme ça je dirais C-x r k (kill-rectangle)

Nicolas
Avatar
Guillaume Connan
Le 7 septembre 2008 à 21:09, Nicolas Matringe a formulé dans un style
qui lui est propre l'idée suivante :

Salut



Ugh et merci.

Alors euh comme ça je dirais C-x r k (kill-rectangle)



le rectangle est bien killed mais un seul par C-x r-k.

Et y a-t-il quelque chose pour tuer les lignes vides ?

--
Guillaume CONNAN
Avatar
Denis Bitouzé
Le dimanche 07/09/08 à 21h22,
Guillaume Connan a écrit :

et je ne trouve pas la bonne commande.



Dans ce cas, je procède « à la main » :

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 :
2. je copie la ligne blanche depuis la fin de la ligne précéden te
jusqu'à son extrémité et, à nouveau, je recherche-rempl ace ça par
rien...
--
Denis
Avatar
Xavier Maillard
Guillaume Connan writes:

Le 7 septembre 2008 à 21:09, Nicolas Matringe a formulé dans un style
qui lui est propre l'idée suivante :

Salut



Ugh et merci.

Alors euh comme ça je dirais C-x r k (kill-rectangle)



le rectangle est bien killed mais un seul par C-x r-k.



Non. Il suffit de marquer le coint haut a gauche de ton rectangle
et le coin bas a droite *puis* C-x r k RET.

En gros, le coin haut a gauche c'est celui correspondant a ta
premiere ligne. Le coin bas a droite celui de ta derniere ligne
(avant le premier caractere).

Et y a-t-il quelque chose pour tuer les lignes vides ?



C-M-% C-q C-j C-q C-j + RET C-q C-j RET

Voili voilou
Avatar
Xavier Maillard
Xavier Maillard writes:

Et y a-t-il quelque chose pour tuer les lignes vides ?



C-M-% C-q C-j C-q C-j + RET C-q C-j RET



Une alternative moins lourde:

M-x flush-lines RET ^$ RET

flush-lines supprime toutes les lignes correspondant a un pattern
donne (une expression reguliere).

Ou bien encore

C-x C-o (aka M-x delete-blank-lines)

Revoili voilou.
Avatar
Guillaume Connan
Le 7 septembre 2008 à 22:09, Xavier Maillard vraute ze foloving
massage :

C-M-% C-q C-j C-q C-j + RET C-q C-j RET



Une alternative moins lourde:

M-x flush-lines RET ^$ RET

flush-lines supprime toutes les lignes correspondant a un pattern
donne (une expression reguliere).

Ou bien encore

C-x C-o (aka M-x delete-blank-lines)




Merci les gars pour ces précieux renseignements !

Tant que j'y suis... une petite question sur replace-regexp.
Le . et le - sont des caractères réservés. Comment les "neutraliser" ?

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


--
Guillaume CONNAN

http://gconnan.free.fr
Avatar
Sébastien Vauban
Bonjour,

et je ne trouve pas la bonne commande.



Dans ce cas, je procède « à la main » :

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 :



Là, j'ai mieux, car plus général -- et donc utilisable
facilement dans d'autres contextes.

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

C-u -16 C-x TAB

`C-x TAB' (indent-rigidly) rajoute un caractère espace en début
de lignes. Préfixé par un argument (à l'aide de `C-u'), cela
permet de dire combien on veut en rajouter... ou -- si
l'argument est négatif, comme c'est ici le cas -- en retirer...


2. je copie la ligne blanche depuis la fin de la ligne
précédente jusqu'à son extrémité et, à nouveau, je
recherche-remplace ça par rien...



Pas mieux... Cela reste suffisamment rapide pour ne pas chercher
autre chose... même si les regexps devraient pouvoir aider.

Seb

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

Bonjour,

et je ne trouve pas la bonne commande.



Dans ce cas, je procède « à la main » :

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 :



Là, j'ai mieux, car plus général -- et donc utilisable
facilement dans d'autres contextes.

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.
Avatar
Xavier Maillard
Guillaume Connan writes:

Le 7 septembre 2008 à 22:09, Xavier Maillard vraute ze foloving
massage :

C-M-% C-q C-j C-q C-j + RET C-q C-j RET



Une alternative moins lourde:

M-x flush-lines RET ^$ RET

flush-lines supprime toutes les lignes correspondant a un pattern
donne (une expression reguliere).

Ou bien encore

C-x C-o (aka M-x delete-blank-lines)




Merci les gars pour ces précieux renseignements !

Tant que j'y suis... une petite question sur replace-regexp.
Le . et le - sont des caractères réservés. Comment les "neutraliser" ?

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).

A+
Avatar
Alain Ketterlin
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) :

awk 'NF==3 { printf("%.3f %.3f %.3fn",$1,$2,$3); }' tonfichier.dat

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

-- Alain.
1 2