Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Ubuntu 18.04 LTS
Ubuntu-fr propose des clés USB de Ubuntu et toutes ses « saveurs » ainsi qu'un magnifique t-shirt pour cette toute nouvelle version d'Ubuntu !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/05/2018, à 15:35

pseudofab

[résolu]Utiliser une variable pour définir de $1 $2... dans awk

Bonjour,J'ai besoin de gérer une commande awk dont $1 $2 ...$99 seraient indiqués par une variable.
Un truc du genre

awk '{print ${coordonneX} " " ${coordonneY}' testpaint.txt 

où ${coordonneX} et $coordonneY pourrait se substituer à $1 et $2 par exemple .
Je butte sur la mise en forme ... roll
merci,

Dernière modification par pseudofab (Le 12/05/2018, à 16:21)


# Là pour le plaisir de découvrir . En souvenir de l'ado dont les yeux brillait devant l'écran d'un Amstrad 6128 ...

Hors ligne

#2 Le 12/05/2018, à 16:06

MicP

Re : [résolu]Utiliser une variable pour définir de $1 $2... dans awk

Bonjour

Je ne suis pas sûr d'avoir bien compris ce que tu cherches à faire.

Mais peut-être que… :

michel@debg53sw:~/essais$ cat scrbashawk.sh 
#!/bin/bash

echo "paramètre1=$1"
echo "paramètre2=$2"
echo "paramètre3=$3"
echo

awk '{print $'$1',$'$2'}' "$3"

michel@debg53sw:~/essais$ 
michel@debg53sw:~/essais$ cat testpaint.txt 
ligne1champ1 ligne1champ2 ligne1champ3 ligne1champ4
ligne2champ1 ligne2champ2 ligne2champ3 ligne2champ4
michel@debg53sw:~/essais$ 
michel@debg53sw:~/essais$ ./scrbashawk.sh 3 1 testpaint.txt
paramètre1=3
paramètre2=1
paramètre3=testpaint.txt

ligne1champ3 ligne1champ1
ligne2champ3 ligne2champ1
michel@debg53sw:~/essais$ 

Dernière modification par MicP (Le 12/05/2018, à 16:15)

Hors ligne

#3 Le 12/05/2018, à 16:20

pseudofab

Re : [résolu]Utiliser une variable pour définir de $1 $2... dans awk

Merci MicP
Ma demande était confuse mais tu as répondu à mon interrogation ....


# Là pour le plaisir de découvrir . En souvenir de l'ado dont les yeux brillait devant l'écran d'un Amstrad 6128 ...

Hors ligne

#4 Le 12/05/2018, à 16:27

MicP

Re : [résolu]Utiliser une variable pour définir de $1 $2... dans awk

Content d'avoir pu t'aider.  smile
Je suis moi aussi très embêté quand je dois expliquer un de mes problèmes.

Dernière modification par MicP (Le 12/05/2018, à 16:28)

Hors ligne

#5 Le 12/05/2018, à 17:29

Watael

Re : [résolu]Utiliser une variable pour définir de $1 $2... dans awk

salut,

awk -v var1=1 -v var2=3 '{print $var1,$var2}' fileName

eval, c'est mal.

Hors ligne

#6 Le 12/05/2018, à 17:41

MicP

Re : [résolu]Utiliser une variable pour définir de $1 $2... dans awk

Merci Watael

En supposant (au cas où) que c'est depuis un script que awk sera lançé
je modifie le script en tenant compte de tes conseils :

#!/bin/bash

# Les lignes echo qui suivent ne sont juste là (le temps des tests)
#  que pour vérifier quels ont été les paramètres reconnus par le script.
echo "paramètre1=$1"
echo "paramètre2=$2"
echo "paramètre3=$3"
echo
# on peut donc supprimer ces lignes de commande "echo"

awk -v var1=$1 -v var2=$2 '{print $var1,$var2}' "$3"

Dernière modification par MicP (Le 12/05/2018, à 18:22)

Hors ligne

#7 Le 12/05/2018, à 17:55

pseudofab

Re : [résolu]Utiliser une variable pour définir de $1 $2... dans awk

smile
Merci a vous deux


# Là pour le plaisir de découvrir . En souvenir de l'ado dont les yeux brillait devant l'écran d'un Amstrad 6128 ...

Hors ligne