Rechercher : dans
Par :

Separateur de awk

Dernière réponse le 21 avr 2009 à 10:08:02 coiaye, le 20 avr 2009 à 11:05:20 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 6.0

1

jipicy, le 20 avr 2009 à 11:08:10

Salut,

Normalement oui ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

coiaye, le 20 avr 2009 à 11:22:49

:)
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

Répondre à coiaye

3

jipicy, le 20 avr 2009 à 11:31:14

C'est toi qui a un problème car :

$ echo "ligne:123 chaine 456 chaine 789 chaine 1011" | awk -F"chaine" '{print $2}'
 456
chez moi ça marche bien ;-\
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

4

coiaye, le 20 avr 2009 à 11:38:33

????
je comprend pas pourqoi ça marche pas pour moi :-S
sinon ya t'il un moyen avec sed?

Répondre à coiaye

5

jipicy, le 20 avr 2009 à 11:50:30

Je ne comprends pas non plus ;-((

sed n'est pas vraiment fait pour ça...
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

6

coiaye, le 20 avr 2009 à 11:54:30

Merci kan meme,
je v essayer de trouver ce qui cloch
sinon si tu as une proposition d'une autre solution je sui preneur :)
merci

Répondre à coiaye

7

jipicy, le 20 avr 2009 à 11:56:36

Sans grande conviction...

 awk 'BEGIN { FS = "chaine" } { print $2 }'
;-\
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

8

coiaye, le 20 avr 2009 à 12:02:10

Slt
j'ai déja essayé ça, pareil ça marche pas :-/

Répondre à coiaye

9

coiaye, le 20 avr 2009 à 16:31:58

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

Répondre à coiaye

10

jipicy, le 20 avr 2009 à 16:35:53

Re-

Là par contre c'est du domaine de "sed" :

echo "aaa:bbb:ccc:ddd" | sed -n 's/\(.*\):.*/\1/p'
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

11

coiaye, le 20 avr 2009 à 16:58:52

Ca marche a merveill
jai regler mon probleme, mais je c tjr pas pourquoi awk -F"chaine" marche pa
en tt cas merci bcp bcp

Répondre à coiaye

12

dubcek, le 20 avr 2009 à 17:18:09

Awk ne peut pas laisser dire ça :-) :
$ echo aaa:bbb:ccc:ddd | awk 'BEGIN {FS=OFS=":"} ; {NF--;print $0}'
aaa:bbb:ccc

Répondre à dubcek

13

jipicy, le 20 avr 2009 à 18:24:21

;-))

Ben comme t'avais pas pointé ton nez de la journée fallait bien trouver un truc de remplacement, non ?

Au fait t'as une idée pour son histoire de séparateur (chaine) du début ?

Bonne soirée.
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

14

dubcek, le 20 avr 2009 à 20:10:36

Il faudrait connaitre quelle platforme,quel awk, essayer peut-être
awk -F"(chaine)" '{print $2}'

Répondre à dubcek

15

jipicy, le 20 avr 2009 à 20:16:44

Merci, en espérant qu'il refasse un saut dans le coin ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

16

coiaye, le 21 avr 2009 à 09:24:11

Je suis là :))

je vien d'essayer awk -F"(chaine)" '{print $2}' mais ça marche pas
comment je doi faire pour connaitre quelle platforme et quel awk (curieu seulement, mon probleme est resolu)

merci

Répondre à coiaye

17

jipicy, le 21 avr 2009 à 09:27:30

Pour la plateforme, Windows ou GNU/Linux (ou Unixes) ?

Pour la version "awk --version"
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

18

dubcek, le 21 avr 2009 à 09:28:19

Hello
ver
uname -a
awk -v
awk --v
Si tu es sur Solaris, uiliser nawk

Répondre à dubcek

19

 coiaye, le 21 avr 2009 à 10:08:02

(SunOS / windows vers unix via SSH)

ça marche avec nawk
c cool
merci

Répondre à coiaye