regular expression in ksh


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting regular expression in ksh
# 1  
Old 11-30-2009
Question regular expression in ksh

I am trying to test to see if the hostname of the computer I'm on starts with ne1dxdb - it can contain any characters after that. I have the following code, but it's not working - it's not falling into the if statement. Any ideas?

boxname="unknown"

function get_hosttype {
HOSTNAME=`hostname`

if [ ${HOSTNAME} = ne1dxdb* ]
then
export boxname="test"
fi

if [ ${HOSTNAME} = ne1pxdb* ]
then
export boxname="prod"
fi
}
# 2  
Old 11-30-2009
You have to use [[ ... ]] instead of [ ... ] to use pattern matching in ksh.
# 3  
Old 11-30-2009
What you are looking is not full regular expression but simple file expansion like pattern matching.
Instead of using multiple if/then statements, the shell case/esac syntax seems the simpler solution to achieve what you want:
Code:
function get_hosttype
{
  export boxname=unknown
  case $(hostname) in
  (ne1dxdb*) boxname=test;;
  (ne1pxdb*) boxname=prod;;
  esac
}

Scrutinizer suggestion will work too.

Last edited by jlliagre; 11-30-2009 at 10:11 PM.. Reason: Add some explanations
# 4  
Old 11-30-2009
from man ksh :
Quote:
string =∼ ere
True if string matches the pattern ∼(E)ere where ere is an extended regular expression.
to be used with double square brackets
# 5  
Old 11-30-2009
regular expression in ksh

it is the problem with quotes, i think juct change like below and try...

function get_hosttype {
HOSTNAME=`hostname`

if [ "${HOSTNAME}" = "ne1dxdb*" ]
then
export boxname="test"
fi
if [ "${HOSTNAME}" = "ne1pxdb*" ]
then
export boxname="prod"
fi
}
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

sed: -e expression #1, char 0: no previous regular expression

Hello All, I'm trying to extract the lines between two consecutive elements of an array from a file. My array looks like: problem_arr=(PRS111 PRS213 PRS234) j=0 while } ] do k=`expr $j + 1` sed -n "/${problem_arr}/,/${problem_arr}/p" problemid.txt ---some operation goes... (11 Replies)
Discussion started by: InduInduIndu
11 Replies

2. Shell Programming and Scripting

Regular Expression in Find command [KSH]

Hello, I am trying to use regex wtih find command in KSH. For some reason it is not working as expected. Input: comm_000_abc_0102.c comm_000_abc.c 456_000_abc_1212.cpp 456_000_abc_.cpp Expected Output: comm_000_abc_0102.c kkm_000_abc_8888.cpp (Basically I want to find all... (6 Replies)
Discussion started by: vinay4889
6 Replies

3. UNIX for Dummies Questions & Answers

regular expression help

\..\ {3\}$ which one of these does this match rs.ef$tt abc.ab abc.$$$$ abc I think its the 1st one what do you think? Thanks Please use code tags! (2 Replies)
Discussion started by: drew211
2 Replies

4. Programming

Perl: How to read from a file, do regular expression and then replace the found regular expression

Hi all, How am I read a file, find the match regular expression and overwrite to the same files. open DESTINATION_FILE, "<tmptravl.dat" or die "tmptravl.dat"; open NEW_DESTINATION_FILE, ">new_tmptravl.dat" or die "new_tmptravl.dat"; while (<DESTINATION_FILE>) { # print... (1 Reply)
Discussion started by: jessy83
1 Replies

5. Shell Programming and Scripting

help in regular expression

<ATTR name="ABCDEFGH" value=""/> <ATTR name="HJYR" value=""/> what would be the regular expression to match both the above strings... Always end with value=""/> always start with <ATTR name=" the ATTR name can be anything.. I need to use this with match() in awk. Thanks.. (1 Reply)
Discussion started by: shekhar2010us
1 Replies

6. Shell Programming and Scripting

Integer expression expected: with regular expression

CA_RELEASE has a value of 6. I need to check if that this is a numeric value. if not error. source $CA_VERSION_DATA if * ] then echo "CA_RELESE $CA_RELEASE is invalid" exit -1 fi + source /etc/ncgl/ca_version_data ++ CA_PRODUCT_ID=samxts ++ CA_RELEASE=6 ++ CA_WEEK_NO=7 ++... (3 Replies)
Discussion started by: ketkee1985
3 Replies

7. Shell Programming and Scripting

Regular Expression

Hi, I have the following file as shown below: Replace() { sed -e "s+ABCDIR+$DDIR/C+g" \ -e "s+ABCDIR+$DDIR/C+g" \ -e "s + ABCDDIR+$DDIR/C"\ } I need a Regular expression to grep 0nly ABCDIR. if i use grep -i... (3 Replies)
Discussion started by: ravi_rn
3 Replies

8. Shell Programming and Scripting

regular expression help

I have a question regarding pattern searching with grep. I have read tutorials all over the place and pretty much understand how to search for patterns and recurring patterns. I, however, need to search for words which have non-repeating occurances. My task is to parse a 'permissions'... (6 Replies)
Discussion started by: Bob565656
6 Replies

9. Linux

Regular expression to extract "y" from "abc/x.y.z" .... i need regular expression

Regular expression to extract "y" from "abc/x.y.z" (2 Replies)
Discussion started by: rag84dec
2 Replies

10. Shell Programming and Scripting

Regular Expression + Aritmetical Expression

Is it possible to combine a regular expression with a aritmetical expression? For example, taking a 8-numbers caracter sequece and casting each output of a grep, comparing to a constant. THX! (2 Replies)
Discussion started by: Z0mby
2 Replies
Login or Register to Ask a Question