Regex

Résolu/Fermé
tht123 Messages postés 72 Date d'inscription mardi 8 mai 2007 Statut Membre Dernière intervention 10 janvier 2009 - 2 juin 2007 à 23:46
tht123 Messages postés 72 Date d'inscription mardi 8 mai 2007 Statut Membre Dernière intervention 10 janvier 2009 - 3 juin 2007 à 11:17
Hello,

Je me demande si avec les REGEX, il est possible afin de remplacer ou effacer du texte dans une ligne compris entre position n°6 jusque position 18 dans une ligne

Exemple:

Essai d'effacement avec les regex

Après traitement:

Essai avec les regex



Je pense utiliser sed :

soit :

s/REGEX//
ou
/regex/d

Suis-je dans le rêve ou est ce faisable??

Bonne nuit

6 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
2 juin 2007 à 23:55
Salut,

$ echo "Essai d'effacement avec les regex" | sed  -r "s/d[\']\w+\s//"
Essai avec les regex

regarde ici sed substitution
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
3 juin 2007 à 00:01
$ echo "Essai d'effacement avec les regex" | sed  -r "s/(.{6}).{13}(.*)/\1\2/"
Essai avec les regex

0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
3 juin 2007 à 01:55
Bonsoir,

Comme l'a démontré lami, c'est possible avec sed, mais une autre solution plus direct existe...
PBG4:~ adrien$ cat test
Essai d'effacement avec les regex
Essai d'effacement avec les regex
Essai d'effacement avec les regex
PBG4:~ adrien$ cat test |cut -c 1-5,19-
Essai avec les regex
Essai avec les regex
Essai avec les regex
Voir man cut.
Le -c permet de spécifier que l'on va couper des caractères, ensuite, il ne reste plus qu'à lui dire quelle portion l'on souhaite afficher.
du premier au 5 puis du 19 à la fin :)


0
tht123 Messages postés 72 Date d'inscription mardi 8 mai 2007 Statut Membre Dernière intervention 10 janvier 2009
3 juin 2007 à 10:01
Merci!!

Tiens mais avec sed si je veux rediriger vers un autre fichier :

sed -r "s/(.{6}).{13}(.*)/\1\2/" file1.txt>file2.txt

avec cat comment peut on faire, de plus le | c'est une fonction logique??

BAT
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
3 juin 2007 à 10:06
Salut,

avec cat comment peut on faire
Comme avec "sed" :
cat fichier | cut -c ... > nouveau_fichier
de plus le | c'est une fonction logique??
Non, tu confonds avec "||" qui lui est une fonction logique (OU).

;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
3 juin 2007 à 10:10
Salut,

j'ai pensé à cut mais tu as demandé regex :-))
lami20j@debian:~$ echo "Essai d'effacement avec les regex" | cut -c1-5,19- > fichier
lami20j@debian:~$ cat fichier
Essai avec les regex

de plus le | c'est une fonction logique?

regarde ici guide d utilisation du shell pour debutant#xxx les redirections et les pipelines


0
tht123 Messages postés 72 Date d'inscription mardi 8 mai 2007 Statut Membre Dernière intervention 10 janvier 2009
3 juin 2007 à 11:17
hELLO.

Merci et bravo pour le tuto!!!

Bonne matinée!!

BAV tous
0