Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 767
  • Last Modified:

substr-awk problem

Hi,
I am not a unix specialist but I need a script to resolve my problem. I know the algorithm but I don’t know to write this using awk in my script.
I want to have something like this:

If substr($6, length($6-1) =”_” then
TBL=$6$REG_TBL
Else
TBL=substr($6,1,18)$REG_TBL”_DM”
endif

Can somebody help my, please?
Thanks in advance
P.S.  I take $6 from rfsh.env file
0
ersatz
Asked:
ersatz
1 Solution
 
shivsaCommented:
could u post a simple example with all the values fill in.
ii can not understand the question.
0
 
ahoffmannCommented:
> substr($6, length($6-1)
returns a string >= 0 characters
did you probably mean
  substr($6,length($6))

Then it's something like this:

{ REG_TBL_DM='irgendein ersatz'; REG_TBL='ersetzen';
  if (substr($6,length($6)) == "_"){
     TBL=$6REG_TBL
  } else {
    TBL=substr($6,1,18)$REG_TBL_DM
  }
0
 
HamdyHassanCommented:

I think he means ..................

if last char of $6 is "_"  then  table name will be $6$REG_TBL
otherwise It will be "first 18 char of $6" + $REG_TBL + "_DM"





0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
ersatzAuthor Commented:
Hi,
You have right,I made a mistake.
My 6th column contains a variable string.
Example of this field value: F4REP_ACCOUNT_OUT_
or                            F4REP_ACCOUNT_OUT_ _DM.
REG_TBL=MMFSA
If substr($6, length($6-1), 1) =”_” then
TBL=$6$REG_TBL                      ($6 concatenate with $REG_TBL)
Else
TBL=substr($6,1,18)$REG_TBL”_DM”   (substr($6,1,18) concatenate with $REG_TBL concatenate with  "_DM"
endif
I am waiting for your answer.
Thanks again
0
 
shivsaCommented:
#!/bin/ksh
set +x

six=F4REP_ACCOUNT_OUT_
REG_TBL=MMFSA
REG_TBL_DM=MMFSA_DM

TBL=`echo "$six $REG_TBL" | awk '{
     if (substr($1,length($1)) == "_"){
     print $1 $2;
} else {
     print substr($1,1,18) $2 "_DM";
}
}'`
echo $TBL
0
 
ahoffmannCommented:
if the answer was just worth a B grading, what is more worth than mine?
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now