A voir également:
- Modification d'une seule ligne ds un fichier
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Fichier host - Guide
7 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
15 mars 2009 à 13:19
15 mars 2009 à 13:19
Salut,
sed '/^Un/ {s//One/;s/.*/& FIN/}' fichier.txt;-))
KuKrApOk59
Messages postés
437
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
84
17 mars 2009 à 23:00
17 mars 2009 à 23:00
Voici ce que tu peux faire
fichier de départ
J'ai decoupé en 2 sed pour voir lequel fait quoi
Le premier sed remplace l''*' en debut de ligne par etoile1, et le suivant remplace le '*' en fin de ligne par etoile2
C'était ce que tu cherchais ?
fichier de départ
Nibbler:~ KuK$ cat blabla Un Deux trois *quatre cinque six sept* *deux trois six* deux un cinq
J'ai decoupé en 2 sed pour voir lequel fait quoi
Nibbler:~ KuK$ cat blabla | sed -e 's/^*/etoile1 /g' | sed -e 's/*$/ etoile2/g' Un Deux trois etoile1 quatre cinque six sept etoile2 etoile1 deux trois six etoile2 deux un cinq
Le premier sed remplace l''*' en debut de ligne par etoile1, et le suivant remplace le '*' en fin de ligne par etoile2
C'était ce que tu cherchais ?
Bonsoir,
merci de votre réponse.
Mon fichier d'exmple présente un défaut.
en effet il faut également que lorsque j'ai :
Un Deux trois
*quatre cinque six sept*
*deux trois six*
deux un * cinq trois qutre * cinq
je dois obtenir :
Un Deux trois
etoile1 quatre cinque six sept etoile1
etoile1 deux trois six etoile1
deux un etoile1 cinq trois qutre etoile1 cinq
merci
merci de votre réponse.
Mon fichier d'exmple présente un défaut.
en effet il faut également que lorsque j'ai :
Un Deux trois
*quatre cinque six sept*
*deux trois six*
deux un * cinq trois qutre * cinq
je dois obtenir :
Un Deux trois
etoile1 quatre cinque six sept etoile1
etoile1 deux trois six etoile1
deux un etoile1 cinq trois qutre etoile1 cinq
merci
et lorsque j'ai
*quatre cinque six sept*
*deux trois six*
*deux un cinq.
*deux trois.
un deux trois * cinq *
un deux trois *cinq six
sept huit * neuf
je dois obtenir :
etoile1 quatre cinque six sept etoile1
etoile1 deux trois six etoile2
*deux un cinq.
*deux trois.
un deux trois etoile1 cinq etoile2
un deux trois etoile1 cinq six
sept huit etoile2 neuf
voilà....
merci
*quatre cinque six sept*
*deux trois six*
*deux un cinq.
*deux trois.
un deux trois * cinq *
un deux trois *cinq six
sept huit * neuf
je dois obtenir :
etoile1 quatre cinque six sept etoile1
etoile1 deux trois six etoile2
*deux un cinq.
*deux trois.
un deux trois etoile1 cinq etoile2
un deux trois etoile1 cinq six
sept huit etoile2 neuf
voilà....
merci
synopsis8
Messages postés
1364
Date d'inscription
dimanche 15 mars 2009
Statut
Membre
Dernière intervention
1 juin 2013
243
17 mars 2009 à 23:32
17 mars 2009 à 23:32
Dis donc, tu nous collerais pas tes devoirs d'informatique a faire par hasard ?
KuKrApOk59
Messages postés
437
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
84
17 mars 2009 à 23:36
17 mars 2009 à 23:36
Dans ce cas
C'est le cas le plus simple car il suffit de remplacer * par etoile1
Chez moi j'ai ceci
PS : CaYmal de nous faire faire des devoirs ^_^
cat TONFICHIER | sed -e 's/*/etoile1/g'va suffire ... non ?
C'est le cas le plus simple car il suffit de remplacer * par etoile1
Chez moi j'ai ceci
Nibbler:~ KuK$ cat blabla2 Un Deux trois *quatre cinque six sept* *deux trois six* deux un * cinq trois qutre * cinq Nibbler:~ KuK$ cat blabla2 | sed -e 's/*/ etoile1 /g' Un Deux trois etoile1 quatre cinque six sept etoile1 etoile1 deux trois six etoile1 deux un etoile1 cinq trois qutre etoile1 cinqOu alors j'ai raté quelquechose
PS : CaYmal de nous faire faire des devoirs ^_^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
17 mars 2009 à 23:44
17 mars 2009 à 23:44
sed 's/*/ etoile2/2;s/*/etoile1 /'
Bonsoir,
j'ai bien compris cette syntaxe, le pb c'est que lorsque le fichier est comme ceci :
*quatre cinque six sept*
*deux trois six*
*deux un cinq.
*deux trois.
un deux trois * cinq *
un deux trois *cinq six
sept huit * neuf
il faut pas que les étoiles de la ligne 3 et ligne 4 soit modifiés.
etoile1 quatre cinque six sept etoile1
etoile1 deux trois six etoile1
*deux un cinq.
*deux trois.
un deux trois etoile1 cinq etoile2
un deux trois etoile1 cinq six
sept huit etoile2 neuf
on constate que sur ces lignes 3 et lignes 4, à la fin on trouve un point, ne peut on pas jouer sur ça ?
Merci
j'ai bien compris cette syntaxe, le pb c'est que lorsque le fichier est comme ceci :
*quatre cinque six sept*
*deux trois six*
*deux un cinq.
*deux trois.
un deux trois * cinq *
un deux trois *cinq six
sept huit * neuf
il faut pas que les étoiles de la ligne 3 et ligne 4 soit modifiés.
etoile1 quatre cinque six sept etoile1
etoile1 deux trois six etoile1
*deux un cinq.
*deux trois.
un deux trois etoile1 cinq etoile2
un deux trois etoile1 cinq six
sept huit etoile2 neuf
on constate que sur ces lignes 3 et lignes 4, à la fin on trouve un point, ne peut on pas jouer sur ça ?
Merci
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
18 mars 2009 à 07:41
18 mars 2009 à 07:41
[tmpfs]$ cat plop *quatre cinq six sept* *deux trois six* *deux un cinq. *deux trois. un deux trois * cinq * un deux trois * cinq six sept huit * neuf [tmpfs]$ sed ' :b s/*/etoile2/2 Tz s/*/etoile1/ b :z /\.$/b N bb ' plop etoile1quatre cinq six septetoile2 etoile1deux trois sixetoile2 *deux un cinq. *deux trois. un deux trois etoile1 cinq etoile2 un deux trois etoile1 cinq six sept huit etoile2 neuf [tmpfs]$;-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
18 mars 2009 à 18:53
18 mars 2009 à 18:53
sed ' :b s/*/etoile2/2 tz /\.$/b N bb :z s/*/etoile1/ '
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
>
Arun
19 mars 2009 à 16:34
19 mars 2009 à 16:34
sed ' :b s/*/etoile2/2 tz /\.$/{ s/*/etoile3/ b } N bb :z s/*/etoile1/ '
Mike
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
20 mars 2009 à 18:33
20 mars 2009 à 18:33
c'est exactement ce que je voulais :)
Merci encore.
Merci encore.
15 mars 2009 à 13:40
Ca fonctionne parfaitement.
Par contre j'aurais une question, a quoi sert le " ^ " dans /^UN/ ?
Pouriez vous m'expliquer briévement la syntaxe que je ne comprends pas entierement.
15 mars 2009 à 13:44
Voir SED - Les expressions régulières
15 mars 2009 à 13:47
15 mars 2009 à 23:57
sed '/^T / {s//<title>/;s/.*/&<\/title>/}' fichier.txt > fichier1.txt
En faite, j'aimerais éviter un fichier temporaire.
Merci
16 mars 2009 à 00:05
sed -i .....
et ca marche....
merci