Problème awk en ksh

Résolu
Nokaddict Messages postés 234 Date d'inscription   Statut Membre Dernière intervention   -  
Nokaddict Messages postés 234 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à toutes et à tous,

Etant donnée que je ne suis pas un as en programmation, je solicite de la communauté un peu d'aide.

Ce bout de programme est censé récupérer tous les users dba d'un serveur. Les données écrites en dur ne sont la qu'à titre d'exemple, elles sont normalement remplacées par des variables.

je souhaite utiliser la commande "awk" pour extraire les données d'une chaine de caractères dans l'avant dernière ligne du code ksh ci-dessous :

userdba_p="/home/logiciel/oracle/ora15903 /home/logiciel/oracle/ora16103"
integer userdba_c=2                                                        
integer a=0                                                                
set -A list $userdba_p                                                  
while [ $a -lt userdba_c ]; do                                          
 s1='echo "${list[$a]}" | sed 's/[^/]/ /g' | wc -w' #4              
 sp='expr $s1 + 1'   #5                                         
 usenam='echo ${list[$a]} | awk -F"/" '{print $sp}''
done


Je voudrais que dans "usenam", le resultat resorti soit uniquement : ora15903.

A l'avant derniere ligne, le print$ est incorecte car je ne précise pas l'emplacement. Ce dernier est définis par $sp. Or lorsque j'indique directement $sp dans print, le résultat retourné est :

/home/logiciel/oracle/ora15903


Alors que lorsque j'indique "en dur" $5, ça fonctionne.

J'ai essayé avec $$sp, ça ne fonctionne pas.

Je remercie par avance ceux qui auront pris le temps de bien vouloir m'aider.

3 réponses

Nokaddict Messages postés 234 Date d'inscription   Statut Membre Dernière intervention   24
 
Jme répond à moi même, mais ça aidera peux être ceux qui ont eu/auront le même problème.

Il faut mêtre "print $NF".

Bonne soirée
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
hello
ou aussi
$ userdba_p="/home/logiciel/oracle/ora15903 /home/logiciel/oracle/ora16103"
$ echo "$userdba_p" | awk 'BEGIN {RS="[ \n]"; FS="/"} {print $NF}'
ora15903
ora16103
0
Nokaddict Messages postés 234 Date d'inscription   Statut Membre Dernière intervention   24
 
Aussi
0