Re: [HS] extraire deux colonnes
Le jeudi 3 décembre 2015, 10:20:30 David Martin a écrit :
> Bonjour,
’jour,
>[…]
> COMPTA:/u01/app/oracle/product/11.2.0.3/dbhome_1:N
>[…]
> J' aimerai avoir ce résultat :
>
> COMPTA : 11.2.0.3
>[…]
> cat /etc/oratab | awk -F ":" '{print $1}'
Au passage : UUOC (le 'cat' ne sert à rien).
> j'arrive à isoler le nom mais pas à afficher les version
Tu as deux séparateurs, ':' et '/' donc il faudrait deux
passes, une pour extraire et l’autre pour nettoyer (ou en
utilisant 'split()' ou 'sub()' pour le nettoyage / second
découpage).
Déjà, le '/' est le plus complexe, donc la première chose est
de récupérer la version et conserver le premier champ :
awk -F/ '{print $1, $(NF-1)}' /etc/oratab
Et là, ô miracle, le premier champ (vis-à-vis de '/') est
'COMPTA:', le séparateur de sortie (OFS) est l’espace, donc la
première passe te donne :
COMPTA: 11.2.0.3
donc tu n’as même pas besoin de nettoyer le premier champ
(enlever le ':' en trop et mettre un ':' comme séparateur).
(Tu peux supprimer l’espace en mettant la variable OFS à "" :
awk -F/ 'BEGIN{OFS=""} {print $1, $(NF-1)}' /etc/oratab
)
--
Sylvain Sauvage
Reply to: