Recuperer le dernier mots (korn shell)

Fermé
tuco - 31 mars 2009 à 23:13
dubcek Messages postés 18546 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 29 septembre 2022 - 6 avril 2009 à 15:37
Bonjour tt lmonde,

j'ai besion de developper un scrit qui reçoi un ensemble de parametres en entrée et j'aimerai récupérer le dernier mots dans un message texte représenté par l'un des paramètres (on va dire $3). je doit développer le script en .ksh

merci

3 réponses

dubcek Messages postés 18546 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 29 septembre 2022 5 556
1 avril 2009 à 12:16
hello
echo $3 | awk '{print $NF}'
affiche le dernier mot de $3
0
merci bcp dubcek pr ta reponse, ça marche
j'aimerai savoir si tu pouvai m'aider sur mon script
o fait, le script reçoi plusieur parametres:
$1 --> "aaa/zzz/eee rrr|tttt 5 : yyy|uuu/iii/ooo|ppp|qqq(sss) = 23"
$2 --> "1" ou "2" ou "3"
$3 --> "true"
.
.
. (d'autres parametres)

je voudrai recuperer du $1 : "ooo" "5" "qqq(sss)" et "23" (pour 23 c'est la reponse que tu ma donné)
et pour $2 transformer "1" en "yes", "2" en "NO" et "3" en "maybe"

et metre tous ceci dans un tableau qui s'affiche a l'execution du script
--------------------------------------------
date | host | a | b | c | d | e |
------------------------------------------
| | | | | | |

l'ordre n'est pas important

merci

cdlt
0
dubcek Messages postés 18546 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 29 septembre 2022 5 556
2 avril 2009 à 13:52
hello
enlever l'espace après et avant [ ]

echo "aaa/zzz/eee rrr|tttt 5 : yyy|uuu/iii/ooo|ppp|qqq(sss) = 23" | awk '{split($5, x, "[ /\| ]") ; print x[4], $3, x[6], $NF}'
ooo 5 qqq(sss) 23

echo $2 | awk '/1/ {s="yes"} ; /2/ {s="NO" } ; /3/ {s="maybe"}  ; END{print s}'
0
ça ma beaucoup aidé, merci
jai une ptite question sur le tableau
comment fair pour attribuer un nombre de caractere à une colone,
je m'explique: je veu par exemple mettre un nombre dans une case d'un tableu, et je ne sais pas de combien de chiffres est composé, (exp "5" ou "3654" ou "23" ), les case d'une ligne sont separé par "|" et je ne veu pas que "|" dépasse si j'ai un nombre de 3 ou 4 caractere

merci
0
dubcek Messages postés 18546 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 29 septembre 2022 5 556
6 avril 2009 à 15:37
x=3
printf("%5d\n", x)

x s'affche sur 5 position

echo | awk '{x=1 ; y=123 ; printf("%5d|%5d\n",x,y)}'
    1|  123
0