Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stephane Zuckerman
J'ai un fichier dont chaque ligne contient 2 mots et j'aimerais inverser ces 2 mots pour chacune des ces lignes.
exemple : toto1 tata1 toto2 tata2 toto3 tata3
tata1 toto1 tata2 toto2 tata3 toto3
s/([:alpha:]+) ([:alpha:]+)/2 1/ (pas testé, mais je suppose que vi connaît les classes de regexp POSIX. Sinon, [:alpha:] == [a-zA-Z0-9_] si je me souviens bien).
Du genre inverser le mot 1 trouver par une regexp avec le mot 2 trouver par une autre regexp.
Hein ?
-- "Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce que je veux !" "The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers." (Bill Gates, The Road Ahead)
J'ai un fichier dont chaque ligne contient 2 mots et j'aimerais inverser
ces 2 mots pour chacune des ces lignes.
exemple :
toto1 tata1
toto2 tata2
toto3 tata3
tata1 toto1
tata2 toto2
tata3 toto3
s/([:alpha:]+) ([:alpha:]+)/2 1/
(pas testé, mais je suppose que vi connaît les classes de regexp POSIX.
Sinon, [:alpha:] == [a-zA-Z0-9_] si je me souviens bien).
Du genre inverser le mot 1 trouver par une regexp avec le mot 2 trouver
par une autre regexp.
Hein ?
--
"Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce
que je veux !"
"The obvious mathematical breakthrough would be development of an easy
way to factor large prime numbers." (Bill Gates, The Road Ahead)
J'ai un fichier dont chaque ligne contient 2 mots et j'aimerais inverser ces 2 mots pour chacune des ces lignes.
exemple : toto1 tata1 toto2 tata2 toto3 tata3
tata1 toto1 tata2 toto2 tata3 toto3
s/([:alpha:]+) ([:alpha:]+)/2 1/ (pas testé, mais je suppose que vi connaît les classes de regexp POSIX. Sinon, [:alpha:] == [a-zA-Z0-9_] si je me souviens bien).
Du genre inverser le mot 1 trouver par une regexp avec le mot 2 trouver par une autre regexp.
Hein ?
-- "Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce que je veux !" "The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers." (Bill Gates, The Road Ahead)
Fred
Bonjour tout le monde,
J'ai un fichier dont chaque ligne contient 2 mots et j'aimerais inverser ces 2 mots pour chacune des ces lignes.
exemple : toto1 tata1 toto2 tata2 toto3 tata3
tata1 toto1 tata2 toto2 tata3 toto3
Est ce que c'est possible de faire ça avec vi ? [...]
Jérôme
Si c'est pour un seul fichier et que tu ne veux pas l'intéger à un script shell, tu peux utiliser une macro vi :
:map v 0dwA ^[pj
Si tu n'est pas familier avec les les macros, le ^[ est en fait obtenu en tapant ctrl V Esc
Une fois la macro entrée, tu l'appelles en tapant simplement v et en le répétant autant de fois qu'il y a de lignes.
A+
Fred
Bonjour tout le monde,
J'ai un fichier dont chaque ligne contient 2 mots et j'aimerais inverser
ces 2 mots pour chacune des ces lignes.
exemple :
toto1 tata1
toto2 tata2
toto3 tata3
tata1 toto1
tata2 toto2
tata3 toto3
Est ce que c'est possible de faire ça avec vi ?
[...]
Jérôme
Si c'est pour un seul fichier et que tu ne veux pas l'intéger à un
script shell, tu peux utiliser une macro vi :
:map v 0dwA ^[pj
Si tu n'est pas familier avec les les macros, le ^[ est en fait obtenu
en tapant ctrl V Esc
Une fois la macro entrée, tu l'appelles en tapant simplement v et en le
répétant autant de fois qu'il y a de lignes.
J'ai un fichier dont chaque ligne contient 2 mots et j'aimerais inverser ces 2 mots pour chacune des ces lignes.
exemple : toto1 tata1 toto2 tata2 toto3 tata3
tata1 toto1 tata2 toto2 tata3 toto3
Est ce que c'est possible de faire ça avec vi ? [...]
Jérôme
Si c'est pour un seul fichier et que tu ne veux pas l'intéger à un script shell, tu peux utiliser une macro vi :
:map v 0dwA ^[pj
Si tu n'est pas familier avec les les macros, le ^[ est en fait obtenu en tapant ctrl V Esc
Une fois la macro entrée, tu l'appelles en tapant simplement v et en le répétant autant de fois qu'il y a de lignes.
A+
Fred
jeje900ss
Stephane Zuckerman wrote:
J'ai un fichier dont chaque ligne contient 2 mots et j'aimerais inverser ces 2 mots pour chacune des ces lignes.
exemple : toto1 tata1 toto2 tata2 toto3 tata3
tata1 toto1 tata2 toto2 tata3 toto3
s/([:alpha:]+) ([:alpha:]+)/2 1/ (pas testé, mais je suppose que vi connaît les classes de regexp POSIX. Sinon, [:alpha:] == [a-zA-Z0-9_] si je me souviens bien).
Merci beaucoup. la commande exacte était : :%s/([[:alpha:]]+) ([[:alpha:]]+)/2 1/
Du genre inverser le mot 1 trouver par une regexp avec le mot 2 trouver par une autre regexp.
Hein ?
Je voulais dire comment faire références aux expressions afin de les inverser. Et d'aprés ta réponse j'en déduit que ça se fait avec n ou n fait référence à la n ième expression entre parenthèse.
D'ailleur aprés coup je suis tombé la dessus ou tout est expliqué : http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_03_06
Jérôme
Stephane Zuckerman wrote:
J'ai un fichier dont chaque ligne contient 2 mots et j'aimerais inverser
ces 2 mots pour chacune des ces lignes.
exemple :
toto1 tata1
toto2 tata2
toto3 tata3
tata1 toto1
tata2 toto2
tata3 toto3
s/([:alpha:]+) ([:alpha:]+)/2 1/
(pas testé, mais je suppose que vi connaît les classes de regexp POSIX.
Sinon, [:alpha:] == [a-zA-Z0-9_] si je me souviens bien).
Merci beaucoup.
la commande exacte était :
:%s/([[:alpha:]]+) ([[:alpha:]]+)/2 1/
Du genre inverser le mot 1 trouver par une regexp avec le mot 2 trouver
par une autre regexp.
Hein ?
Je voulais dire comment faire références aux expressions afin de les
inverser. Et d'aprés ta réponse j'en déduit que ça se fait avec n ou n
fait référence à la n ième expression entre parenthèse.
D'ailleur aprés coup je suis tombé la dessus ou tout est expliqué :
http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_03_06
J'ai un fichier dont chaque ligne contient 2 mots et j'aimerais inverser ces 2 mots pour chacune des ces lignes.
exemple : toto1 tata1 toto2 tata2 toto3 tata3
tata1 toto1 tata2 toto2 tata3 toto3
s/([:alpha:]+) ([:alpha:]+)/2 1/ (pas testé, mais je suppose que vi connaît les classes de regexp POSIX. Sinon, [:alpha:] == [a-zA-Z0-9_] si je me souviens bien).
Merci beaucoup. la commande exacte était : :%s/([[:alpha:]]+) ([[:alpha:]]+)/2 1/
Du genre inverser le mot 1 trouver par une regexp avec le mot 2 trouver par une autre regexp.
Hein ?
Je voulais dire comment faire références aux expressions afin de les inverser. Et d'aprés ta réponse j'en déduit que ça se fait avec n ou n fait référence à la n ième expression entre parenthèse.
D'ailleur aprés coup je suis tombé la dessus ou tout est expliqué : http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_03_06
Jérôme
jeje900ss
Fred wrote:
Bonjour tout le monde,
J'ai un fichier dont chaque ligne contient 2 mots et j'aimerais inverser ces 2 mots pour chacune des ces lignes.
exemple : toto1 tata1 toto2 tata2 toto3 tata3
tata1 toto1 tata2 toto2 tata3 toto3
Est ce que c'est possible de faire ça avec vi ? [...]
Jérôme
Si c'est pour un seul fichier et que tu ne veux pas l'intéger à un script shell, tu peux utiliser une macro vi :
:map v 0dwA ^[pj
Si tu n'est pas familier avec les les macros, le ^[ est en fait obtenu en tapant ctrl V Esc
Une fois la macro entrée, tu l'appelles en tapant simplement v et en le répétant autant de fois qu'il y a de lignes.
J'ai testé, ça marche bien. Jolie :-) J'avais pas du tout pensé à cette méthode. Je m'était focalisé sur la substitution et les expressions régulières.
Comme ça avec cette question j'aurai appris 2 choses
Merci
Jérôme
Fred wrote:
Bonjour tout le monde,
J'ai un fichier dont chaque ligne contient 2 mots et j'aimerais inverser
ces 2 mots pour chacune des ces lignes.
exemple :
toto1 tata1
toto2 tata2
toto3 tata3
tata1 toto1
tata2 toto2
tata3 toto3
Est ce que c'est possible de faire ça avec vi ?
[...]
Jérôme
Si c'est pour un seul fichier et que tu ne veux pas l'intéger à un
script shell, tu peux utiliser une macro vi :
:map v 0dwA ^[pj
Si tu n'est pas familier avec les les macros, le ^[ est en fait obtenu
en tapant ctrl V Esc
Une fois la macro entrée, tu l'appelles en tapant simplement v et en le
répétant autant de fois qu'il y a de lignes.
J'ai testé, ça marche bien. Jolie :-)
J'avais pas du tout pensé à cette méthode. Je m'était focalisé sur la
substitution et les expressions régulières.
Comme ça avec cette question j'aurai appris 2 choses
J'ai un fichier dont chaque ligne contient 2 mots et j'aimerais inverser ces 2 mots pour chacune des ces lignes.
exemple : toto1 tata1 toto2 tata2 toto3 tata3
tata1 toto1 tata2 toto2 tata3 toto3
Est ce que c'est possible de faire ça avec vi ? [...]
Jérôme
Si c'est pour un seul fichier et que tu ne veux pas l'intéger à un script shell, tu peux utiliser une macro vi :
:map v 0dwA ^[pj
Si tu n'est pas familier avec les les macros, le ^[ est en fait obtenu en tapant ctrl V Esc
Une fois la macro entrée, tu l'appelles en tapant simplement v et en le répétant autant de fois qu'il y a de lignes.
J'ai testé, ça marche bien. Jolie :-) J'avais pas du tout pensé à cette méthode. Je m'était focalisé sur la substitution et les expressions régulières.
Comme ça avec cette question j'aurai appris 2 choses