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

Comment insérer automatiquement un mot au debut d'une ligne et un autre mot à la fin de la même ligne.

17 réponses
Avatar
Guytou
Bonjour à tous,

J'aimerai savoir comment ajouter un mot au début d'une ligne et à la fin de
cette même ligne.
J'ai un fichier comportant une liste de nom de 200 tables ORACLE.

table_1
table_2
table_3
table_4
..........
table_200

J'aimerai insérer automatiquement au début de chaque ligne le mot "drop" .
Je veux aussi ajouter à la fin de chaque ligne un ";" (point virgule) pour
avoir ceci:

drop table_1 ;
drop table_2 ;
drop table_3 ;
drop table_4 ;
drop .......... ;
drop table_200 ;

Merci par avance de m'aider à résoudre mon problème.
J'ai des machines SUN et HP.

GUYTOU

10 réponses

1 2
Avatar
Benoit Izac
Bonjour,

le 15/01/2007 à 18:35, Guytou a écrit dans le message
<45abbb59$0$322$ :

J'aimerai savoir comment ajouter un mot au début d'une ligne et à la
fin de cette même ligne.
J'ai un fichier comportant une liste de nom de 200 tables ORACLE.

table_1
table_2
table_3
table_4
..........
table_200

J'aimerai insérer automatiquement au début de chaque ligne le mot
"drop" . Je veux aussi ajouter à la fin de chaque ligne un ";" (point
virgule) pour avoir ceci:

drop table_1 ;
drop table_2 ;
drop table_3 ;
drop table_4 ;
drop .......... ;
drop table_200 ;


sed -e 's/.*/drop & ;/' < fichier

--
Benoit Izac

Avatar
Olivier Miakinen

table_1

J'aimerai insérer automatiquement au début de chaque ligne le mot "drop" .
Je veux aussi ajouter à la fin de chaque ligne un ";" (point virgule) pour
avoir ceci:

drop table_1 ;


par exemple :

vi lefichier<entrée>
:%s/.*/drop ;/<entrée>
:wq<entrée>

Il y a des moyens avec sed ou awk également, mais dans ces cas là je
préfère le mode interactif (si le fichier ne compte pas des centaines
de milliers de lignes).

Avatar
Olivier Miakinen

sed -e 's/.*/drop & ;/' < fichier
^

Tiens, c'est vrai, je ne pense jamais au « & » comme synonyme de
« ».

Avatar
Stephane Chazelas
2007-01-15, 19:55(+01), Olivier Miakinen:

sed -e 's/.*/drop & ;/' < fichier
^

Tiens, c'est vrai, je ne pense jamais au « & » comme synonyme de
« ».


est GNU specific (et n'est meme pas documenté dans la version
de GNU sed que j'ai). À eviter.

--
Stéphane


Avatar
Guytou
Bonsoir à tous,

Merci à tous ceux qui m'ont répondu.
Demain matin au travail, je vais mettre en pratique vos réponses.
Grand merci pour votre aide.

GUYTOU

"Olivier Miakinen" <om+ a écrit dans le message de news:
45abcda6$

table_1

J'aimerai insérer automatiquement au début de chaque ligne le mot "drop"
.
Je veux aussi ajouter à la fin de chaque ligne un ";" (point virgule)
pour
avoir ceci:

drop table_1 ;


par exemple :

vi lefichier<entrée>
:%s/.*/drop ;/<entrée>
:wq<entrée>

Il y a des moyens avec sed ou awk également, mais dans ces cas là je
préfère le mode interactif (si le fichier ne compte pas des centaines
de milliers de lignes).



Avatar
Olivier Miakinen
^
Tiens, c'est vrai, je ne pense jamais au « & » comme synonyme de
« ».


est GNU specific (et n'est meme pas documenté dans la version
de GNU sed que j'ai). À eviter.


Ah ? Il me semblait que je l'utilisais déjà sur DPX/2 puis sur SunOS
entre 1987 et 1990. Et sur un SCO Unix par la suite, pour finir par AIX.
Note que j'utilise plus souvent les 1, 2, etc., mais je n'utilise
jamais le &.


Avatar
Stephane Chazelas
2007-01-16, 09:35(+01), Olivier Miakinen:
^
Tiens, c'est vrai, je ne pense jamais au « & » comme synonyme de
« ».


est GNU specific (et n'est meme pas documenté dans la version
de GNU sed que j'ai). À eviter.


Ah ? Il me semblait que je l'utilisais déjà sur DPX/2 puis sur SunOS
entre 1987 et 1990. Et sur un SCO Unix par la suite, pour finir par AIX.
Note que j'utilise plus souvent les 1, 2, etc., mais je n'utilise
jamais le &.


n'a jamais été reconnu sous Solaris (a moins d'y utiliser le
GNU sed) ni sous AIX, AFAIK.

Pour 1, 2... c'est different et tout-a-fait standard (jusqu'a
9), c'est pour retourner les parties /capturees/ par (...)
comme dans s/foo(.*)bar/1/

--
Stéphane



Avatar
Olivier Miakinen

n'a jamais été reconnu sous Solaris


C'était SunOS, mais je ne sais pas s'il y a une différence entre les deux.

(a moins d'y utiliser le GNU sed) ni sous AIX, AFAIK.


Je viens de vérifier : comme toujours c'est toi qui as raison. Sous AIX,
le vi que j'utilise est en réalité un alias vers vim. Je viens de tester
avec /bin/vi et là le devient un 0.

Pour 1, 2... c'est different et tout-a-fait standard (jusqu'a
9), c'est pour retourner les parties /capturees/ par (...)
comme dans s/foo(.*)bar/1/


Oui. C'est d'ailleurs ce que j'utilise dans 99,95 % des cas. Il est
rarissime que j'aie à rajouter du texte simultanément au début et à la
fin d'une ligne complète, et donc soit j'utilise les 1, 2, etc., soit
je remplace ^ par ce que je dois mettre au début ou $ par ce que je dois
mettre à la fin.

Avatar
Matthieu Moy
Olivier Miakinen <om+ writes:


n'a jamais été reconnu sous Solaris


C'était SunOS, mais je ne sais pas s'il y a une différence entre les deux.


SunOS est simplement le noyau de Solaris. Enfin, comme les gens de
chez Sun aiment les noms et les numéros de version compliqués, c'est
aussi l'ancien nom de Solaris.

--
Matthieu


Avatar
Guytou
Bonjour Benoit,

Elle marche votre ligne de commande.

Grand merci.

Cordialement,

Guy

"Benoit Izac" a écrit dans le message de
news:
Bonjour,

le 15/01/2007 à 18:35, Guytou a écrit dans le message
<45abbb59$0$322$ :

J'aimerai savoir comment ajouter un mot au début d'une ligne et à la
fin de cette même ligne.
J'ai un fichier comportant une liste de nom de 200 tables ORACLE.

table_1
table_2
table_3
table_4
..........
table_200

J'aimerai insérer automatiquement au début de chaque ligne le mot
"drop" . Je veux aussi ajouter à la fin de chaque ligne un ";" (point
virgule) pour avoir ceci:

drop table_1 ;
drop table_2 ;
drop table_3 ;
drop table_4 ;
drop .......... ;
drop table_200 ;


sed -e 's/.*/drop & ;/' < fichier

--
Benoit Izac



1 2