Separateur de awk
Résolu
coiaye
-
coiaye -
coiaye -
Bonjour,
dans la commande awk est-il possible pour extraire une partie d'une ligne de prendre une chaine de caractère comme séparateur (au lieu d'un caractère -F) (la chaine se repete plusieurs fois dans la ligne)
merci
dans la commande awk est-il possible pour extraire une partie d'une ligne de prendre une chaine de caractère comme séparateur (au lieu d'un caractère -F) (la chaine se repete plusieurs fois dans la ligne)
merci
A voir également:
- Awk separateur
- Séparateur word - Guide
- Concatener une plage de cellules avec séparateur ✓ - Forum Excel
- Convertir fichier excel en txt avec séparateur point virgule ✓ - Forum Excel
- Fichier TXT avec séparateur de champs ✓ - Forum Logiciels
- Séparateur vertical clavier ✓ - Forum Autres distributions Linux
8 réponses
C'est toi qui a un problème car :
$ echo "ligne:123 chaine 456 chaine 789 chaine 1011" | awk -F"chaine" '{print $2}' 456chez moi ça marche bien ;-\
Sans grande conviction...
awk 'BEGIN { FS = "chaine" } { print $2 }';-\
slt
j'ai encor une question qui pourai m'aider
comment je pourai extraire d'une chaine tous les champs séparés par un caractère (":" par exemple) sauf le dernier
en gro j'ai une chaine "aaa:bbb:ccc:ddd" et je veux extraire "aaa:bbb:ccc" sachant que le nombre de ":" n'est pas le meme a chaque foi
je sai comment faire le contraire, c a dire extraire just le dernier champ (awk -F":" '{print $NF}') mais g pas reussi a faire ce que je veux
merci
j'ai encor une question qui pourai m'aider
comment je pourai extraire d'une chaine tous les champs séparés par un caractère (":" par exemple) sauf le dernier
en gro j'ai une chaine "aaa:bbb:ccc:ddd" et je veux extraire "aaa:bbb:ccc" sachant que le nombre de ":" n'est pas le meme a chaque foi
je sai comment faire le contraire, c a dire extraire just le dernier champ (awk -F":" '{print $NF}') mais g pas reussi a faire ce que je veux
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
awk ne peut pas laisser dire ça :-) :
$ echo aaa:bbb:ccc:ddd | awk 'BEGIN {FS=OFS=":"} ; {NF--;print $0}'
aaa:bbb:ccc
$ echo aaa:bbb:ccc:ddd | awk 'BEGIN {FS=OFS=":"} ; {NF--;print $0}'
aaa:bbb:ccc
c'est sympas, aurai tu une idé sur la syntaxe exate car j'ai essayé
echo "ligne:123 chaine 456 chaine 789 chaine 1011" | awk -F"chaine" '{print $2}'
mai ça ne prend en compte que le "c" (le debut de "chaine")
et ça me donne
haine 456
alors que je veux
456
merci