I want to fetch 10.2.0.4.0
from tnsping output in AIX, so I wrote tnsping tucson | grep Version | awk '{print $9}'
, but sometimes in other platforms like Linux the column varies, so I cannot use {print $9}
everywhere. Is there a way such that
- The command looks for
Version
- and then just after it prints whatever number comes up (including ".")
Or any other methods?
TNS Ping Utility for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Production on 16-NOV-2011 16:19:02
Copyright (c) 1997, 2007, Oracle. All rights reserved.
Used parameter files:
Used HOSTNAME adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=bluebird.informatica.com))(ADDRESS=(PROTOCOL=TCP)(HOST=10.65.40.235)(PORT=1521)))
TNS-12535: TNS:operation timed out
I got it for AIX, HPUX, and Linux:
tnsping tucson | grep Version | awk -F Version '{print $2}' | awk '{print $1}'
But I get an error on SunOS I want something that will work on Linux, HP-UX, AIX, and SunOS.
zenvo% tnsping tucson | grep Version | awk -F Version '{print $2}' | awk '{print $1}'
awk: syntax error near line 1
awk: bailing out near line 1
Update after Shelter's answer
Linux, AIX and HP-UX:
tnsping tucson | grep Version | awk -F Version '{print $2}' | awk '{print $1}'
SunOS:
tnsping tucson | grep Version | nawk -F Version '{print $2}' | nawk '{print $1}'