Hi,
I have the below data
ownername/schemaname/tablename/columnname in a file ( 2nd column)
I want to convert everthing to upper case except the column name like below
OWNERNAME/SCHEMANAME/TABLENAME/columnname
do we have a instring function in awk to handle this.
Thx,shruthi
mirni
May 19, 2011, 1:34am
2
toupper() is the function you need:
$ echo 'ownername/schemaname/tablename/columnname' | awk '{for(i=1;i<=NF;i++){if($i!~/columnname/){$i=toupper($i)}}print}' FS='/' OFS='/'
OWNERNAME/SCHEMANAME/TABLENAME/columnname
Ygor
May 19, 2011, 1:51am
3
Try...
$ cat file1
data ownername/schemaname/tablename/columnname data
$ awk 'match($2,".*/"){$2=toupper(substr($2,RSTART,RLENGTH)) substr($2,RLENGTH+1)};1' file1
data OWNERNAME/SCHEMANAME/TABLENAME/columnname data
http://people.cs.uu.nl/piet/docs/nawk/nawk_92.html
awk -F/ '{x=$NF;NF=NF-1;$1=$1;print toupper($0),x}' OFS=/ infile
$ cat tst
ownername/schemaname/tablename/columnname
$ awk -F/ '{x=$NF;NF=NF-1;$1=$1;print toupper($0),x}' OFS=/ tst
OWNERNAME/SCHEMANAME/TABLENAME/columnname