[Bash] awk : split qui ne fonctionne pas :(

awk : split qui ne fonctionne pas :( [Bash] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 07-10-2010 à 10:49:56    

Bonjour,
 
j'ai un soucis avec un split : il ne veut pas fonctionner si je variabilise le séparateur !
 
par exemple, ça marche bien :

Code :
  1. echo "1A2A3A4" | awk '{c=split($valarg,s,"A" ); for(n=1; n<=c; n++) print "   s["n"]=" s[n] }'
  2. donne :
  3.    s[1]=1
  4.    s[2]=2
  5.    s[3]=3
  6.    s[4]=4


 
Par contre ça ne marche pas :

Code :
  1. sep="A"; echo "1A2A3A4" | awk '{ c=split($valarg,s,$sep); for(n=1; n<=c; n++) print "   s["n"]=" s[n] }'


 
mais comment cela se fait ce ?
 
Merci pour votre aide !

Reply

Marsh Posté le 07-10-2010 à 10:49:56   

Reply

Marsh Posté le 07-10-2010 à 21:49:51    

Je ne pense pas que c'est la méthode pour passer des variables à ton script awk. Enfin en utilisant des doubles quotes ça devrait marcher.
 
Sinon tu peux toujours faire comme ça:
 

Code :
  1. echo "1A2A3A4" | awk -v sep="A" '{ c=split($valarg,s,sep); for(n=1; n<=c; n++) print "   s["n"]=" s[n] }'

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed