Awk : expression reguliere remplacer premiere occurence par sub
Résolu/Fermé
A voir également:
- Awk : expression reguliere remplacer premiere occurence par sub
- GREP, AWK pour chercher une IP . ✓ - Forum Debian
- DNS_PROBE_FINISHED_NXDOMAIN : dnsapi.dll (Win32:Patched-AWK) ✓ - Forum Virus
- Fonctionnement de foreach et awk et set ✓ - Forum Shell
- Supprimer des lignes avec awk ou sed ✓ - Forum Shell
- Commande équivalent à Sed, awk, tail,head en powershell ! - Forum Shell
3 réponses
Utilisateur anonyme
5 janv. 2013 à 09:56
5 janv. 2013 à 09:56
salut,
L'astérisque crée une regex gourmande: il va faire correspondre le motif jusqu'à la dernière limite (dans ton cas la dernière virgule)
ceci va fonctionner
Pourquoi ne divises-tu pas tes enregistrements en champs délimités par une virgule? tu n'aurais qu'à modifier le deuxième champ.
L'astérisque crée une regex gourmande: il va faire correspondre le motif jusqu'à la dernière limite (dans ton cas la dernière virgule)
ceci va fonctionner
sub(/ink=[^,]*/, "ink=12z88,", var)
Pourquoi ne divises-tu pas tes enregistrements en champs délimités par une virgule? tu n'aurais qu'à modifier le deuxième champ.
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
5 janv. 2013 à 10:00
5 janv. 2013 à 10:00
hello
$ awk '{var=$0; sub("ink=[^,]*", "ink=12z88", var); print var}' fichier lstt ction=15,ink=12z88,mardi=toto2457$ manip 1,2,3,ink=8,mardi=toto244,66 lstt ction=15,ink=12z88,mardi=toto2457$ Support 1,3,ink=8,mardi=toto244,7 $
5 janv. 2013 à 10:22
parce que j'utilise déjà ';' pour FS