OVH Cloud OVH Cloud

Shell Linux (bash)

3 réponses
Avatar
mezigue
Bonjour,
je voudrais faire un truc tout bête, certains vont rigoler mais bon...

J'ai un fichier avec des tag dedans. Exemple :
quelle commande puis je utiliser pour remplacer ces tag par queque chose
saisit par l'utilisateur ? J'ai entendu parler des regexp, mais je ne sais
pas trop ce que c'est.


blabla blabla
%%truc%% %%machin%%
blabla blabla

3 réponses

Avatar
Thomas Nemeth
Le jeu 30 oct 2003 à 10:19, mezigue a tapoté :
| Bonjour,

Bonjour,


| je voudrais faire un truc tout bête, certains vont rigoler mais bon...
|
| J'ai un fichier avec des tag dedans. Exemple :
| quelle commande puis je utiliser pour remplacer ces tag par queque chose
| saisit par l'utilisateur ? J'ai entendu parler des regexp, mais je ne sais
| pas trop ce que c'est.

Faut lire le man de grep et de sed : c'est une question pour
fr.comp.os.unix, ça n'a strictement rien à voir avec la
configuration de Linux et n'est pas non plus spécifique à Linux.



| blabla blabla
| %%truc%% %%machin%%
| blabla blabla

julie[~] cat toto
blabla blabla
%%truc%% %%machin%%
blabla blabla

julie[~] sed -e 's/%%truc%%/bidule1/;s/%%machin%%/Bidule 2/' toto > titi
julie[~] cat titi
blabla blabla
bidule1 Bidule 2
blabla blabla

julie[~]


Voilà. Utiliser sed ou awk suivant le contexte.


Thomas
--
And as a wise English man said:
"He who uses a mail client to jeopardy quote messages shall die a slow
and painful death the pain being proportional to the amount of useless
quoting left behind".
Avatar
Stephane Chazelas
2003/10/30, 10:19(+01), mezigue:
[...]
J'ai un fichier avec des tag dedans. Exemple :
quelle commande puis je utiliser pour remplacer ces tag par queque chose
saisit par l'utilisateur ? J'ai entendu parler des regexp, mais je ne sais
pas trop ce que c'est.


blabla blabla
%%truc%% %%machin%%
blabla blabla


perl -pi -e 'BEGIN {
%h = ( "truc" => "value1",
"machin" => "value2" )
}
s {%%(.*?)%%} {if (defined $h{$1}){$h{$1}}else{$&}}e'
fichier1 fichier2 fichier3

Une regexp, c'est le '%%(.*?)%%' au dessus. Man regex ou regexp
pour les détail, sachant qu'il y a plusieurs sortes de regexps,
celles de perl étant les plus évoluées (perldoc perlretut et
perldoc perlre).

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]

Avatar
Jerome HUBERT
ou encore, avec vi :

:%s/TEXTE_A_REMPLACER/TEXTE_DE_REMPLACEMENT/g

le "g" comme "global" à la fin c'est pour remplacer toutes les occurences sans confirmation

pour une confirmation à chaque occurence, mettre "gc"


On Thu, 30 Oct 2003 10:19:56 +0100
"mezigue" wrote:

Bonjour,
je voudrais faire un truc tout bête, certains vont rigoler mais bon...

J'ai un fichier avec des tag dedans. Exemple :
quelle commande puis je utiliser pour remplacer ces tag par queque chose
saisit par l'utilisateur ? J'ai entendu parler des regexp, mais je ne sais
pas trop ce que c'est.


blabla blabla
%%truc%% %%machin%%
blabla blabla