Help need in writing Regular Expression


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help need in writing Regular Expression
# 1  
Old 05-13-2009
Help need in writing Regular Expression

Hi
I need some help in writing a Regular expression.
I am getting Date format like "Tue Apr 12 8:21:20 2009" I want to change the this format to "Tue Apr 12 2009 8:21:20" using regular expression
Looking forward your help

Thanks
# 2  
Old 05-13-2009
how are you getting the date format in the first place.? from a file?
# 3  
Old 05-13-2009
Code:
bash-2.05b$ echo $DATE
Tue Apr 12 8:21:20 2009

bash-2.05b$ export NEWDATE=`echo $DATE | perl -pe '$_ =~ s/^(\w{3})\s+(\w{3})\s+(\d\d)\s+(\d+:\d+:\d+)\s+(\d{4})/$1 $2 $3 $5 $4/;'`

bash-2.05b$ echo $NEWDATE
Tue Apr 12 2009 8:21:20

bash-2.05b$

# 4  
Old 05-13-2009
if you are using date command straight from the command line, then use date +%Y etc and so on to format your date. check the man page of date for various format specifiers.
# 5  
Old 05-13-2009
Quote:
Originally Posted by TonySolarisAdmi
I am getting Date format like "Tue Apr 12 8:21:20 2009" I want to change the this format to "Tue Apr 12 2009 8:21:20" using regular expression
This is the "Shell Programming" forum, hence I assume you would like a shell based solution:

Code:
mydate="Tue Apr 12 8:21:20 2009"
year=${mydate##* }
mydate=${mydate% *}
prefix=${mydate% *}
postfix=${mydate##* }
mydate="$prefix $year $postfix"
echo $mydate

If you have access to ksh93 (on Solaris /usr/dt/bin/dtksh is ksh93 compatible):

Code:
#!/usr/dt/bin/dtksh
mydate="Tue Apr 12 8:21:20 2009"
mydate=${mydate/((?:??:??) (20??))/\3 \2}
print $mydate

I am puzzled about the need to surround the pattern at line 3 with additional brackets to make the backreferences work as expected.
I was heading for this
Code:
mydate=${mydate/(?:??:??) (20??)/\2 \1}

but for some reason this works only interactively and not in a script like the above.
# 6  
Old 05-13-2009
if OP's getting the date information from the date command, all he needs to do is give the correct output format
Code:
date "+%a %b %d %Y %H:%M:%S"

# 7  
Old 05-13-2009
I got it. Thanks a lot for your response.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help required in writing the regular expression.

1 1982 1 testing init.cc 3001 Apr 25 2014 09:56:13.617 Task(0x5bac5060) tRestart (stack st:0x5bace000, end:0x5bac8000) deleted 1 1982 1 testing init.cc 3001 Apr 25 2014 09:56:13.628 Task(0x5bac5060) tRestart (stack st:... (12 Replies)
Discussion started by: VSSajjan
12 Replies

2. UNIX for Dummies Questions & Answers

Regular expression help

Hi, I am quite knew to scripting and I am trying to get a regular expression to work to check that a user enters a valid version number such as 1 or 1.1 or 12.3 etc. I dont seem to be able to get it to work as it picks up versions such as 1.......2. I only want it to work with a single dot.... (12 Replies)
Discussion started by: frodo61
12 Replies

3. Shell Programming and Scripting

Why Relational Expression is Writing to a Expression?

Hello All, Not sure why this is happening... When the following If Statement is evaluated for some reason it is creating a file in the CWD called '0'. I've seen this happen before, just not in an If Statement... CODE: if then DIR_NAME="$1" DIR_SIZE=0 STATUS="" else... (3 Replies)
Discussion started by: mrm5102
3 Replies

4. 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

5. 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

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 help

Hi I wanted to match a line using regular expression in a file. the line is: CtL2b00833 the reg expression I'm using now is: m/^(\D+)(\d+)\/) $firstpart=$1 $secondpart=($1 . $2) $thirdpart=$3 But for $firstpart I have digits (2) so I am getting error messages. when I used... (1 Reply)
Discussion started by: Lucky Ali
1 Replies

8. 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

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