Commande bash awk, comment mettre en variables.
Résolu
Jeremyprog
-
Jeremyprog -
Jeremyprog -
Bonjour,
J'ai un petit souci sûrement tout bête mais je n'arrive pas à le régler.
J'ai fais un petit script en
Ça fonctionne très bien mais je voudrais remplacer
... mais cela ne fonctionne pas, j'ai lu toute la doc sur
Si quelqu'un a un piste, ça serait super gentil :)
Merci de prendre du temps pour moi:)
J'ai un petit souci sûrement tout bête mais je n'arrive pas à le régler.
J'ai fais un petit script en
bashavec la commande
awk.
awk '$0=$0"lulu"'
Ça fonctionne très bien mais je voudrais remplacer
"lulu"par une variable du genre
var ="toto" awk '$0=$0''#var'
... mais cela ne fonctionne pas, j'ai lu toute la doc sur
awket j'ai du rater un truc je n'arrive pas à trouver
Si quelqu'un a un piste, ça serait super gentil :)
Merci de prendre du temps pour moi:)
A voir également:
- Awk bash
- Bingo bash - Télécharger - Divers Jeux
- Bash list ✓ - Forum Shell
- Bash permission non accordée - Forum Shell
- Bash pause ✓ - Forum Shell
- Awk gsub ✓ - Forum Shell
2 réponses
Bonjour,
Pour déclarer une variable en shell, il ne faut pas mettre d'espace autour de l'opérateur
En général, pour injecter le contenu d'une variable shell dans une commande shell, tu peux utiliser l'opérateur
Heureusement,
Après, je ne connais pas le contexte de ta question, mais si le but est juste de concaténer une saisie avec une chaîne, je ne vois pas trop l'utilité de
toto.sh
Exécution :
Bonne chance
Pour déclarer une variable en shell, il ne faut pas mettre d'espace autour de l'opérateur
=:
var="toto" echo $var # Affiche toto
En général, pour injecter le contenu d'une variable shell dans une commande shell, tu peux utiliser l'opérateur
${var}(en abrégé
$var). Mais ici, c'est plus compliqué, car en fait on veut injecter une variable shell dans un code awk et du coup
$n'a pas le même sens partout. On pourrait éventuellement s'en sortir avec des
evalet en échappant les
$mais ce serait assez illisible et pénible à écrire.
Heureusement,
awkpermet de récupérer facilement une variable shell et de l'injecter dans les instructions passées à
awk, comme le montre cet exemple :
var="/webroot" echo | awk -v r=$root '{ print "shell variable $root value is " r}'
Après, je ne connais pas le contexte de ta question, mais si le but est juste de concaténer une saisie avec une chaîne, je ne vois pas trop l'utilité de
awk. Tu peux directement écrire un petit script shell :
toto.sh
#!/bin/bash read saisie echo $1$saisie
Exécution :
(mando@silk) (~) $ chmod a+x toto.sh
(mando@silk) (~) $ ./toto.sh toto
tata
tototata
Bonne chance
J'ai un fichier contenant :
Quand je mets la commande :
J'obtiens :
C'est ce que je voulais, mais à la place de je veux mettre une variable. Donc je mets :
(La première ligne du est bien stocké dans la variable ).
Mais cela ne fonctionne pas, j'ai essayé avec plusieurs syntaxe mais ça bloque la variable n'est pas lu comme une variable :(