Detect ints and change to a Date format


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Detect ints and change to a Date format
# 1  
Old 07-07-2011
Detect ints and change to a Date format

Hello,

I have been trying to figure out how to solve this problem and I have run into a dead end. I am trying to parse a text file that gives me a date and I need to read it into SQL server 2005 but SQL can't figure out its a time unless I put it in a different format. This is how my text file looks.
...
Code:
1 edxba990.scr edx 110707 20110806071239 sooners
1 edxba910.scr edx 110707 20110706210239 sooners
1 edxba990.scr edx 110707 20110716070239 sooners
1 edxba991.scr edx 110707 20111109072130 sooners

...

I need to be able to change the date from 20110706070239 to 20110706 07:02:39 for every line. I have tried to do
Code:
sed 's/20[0 9]*/20[0 9][0 9][0 9][0 9][0 9][0 9] [0 9][0 9]:[0 9][0 9]:[0 9][0 9]/g' FileName

but it just puts the [0 9]'s in. The Date is always in the same spot for this file if that helps in anyway.
Please Help. Thanks!
Alex

Last edited by pludi; 07-07-2011 at 11:05 AM..
# 2  
Old 07-07-2011
Code:
 awk  '{ printf "%s %s %s %s %s %s:%s:%s %s\n", $1, $2, $3, $4, substr($5,1,8), substr($5,9,2), substr($5,11,2), substr($5,13,2), $6 }' file

This User Gave Thanks to fpmurphy For This Post:
# 3  
Old 07-07-2011
Thank you!!!!!!
# 4  
Old 07-07-2011
You'll have to tell sed 3 important things in this case:
  • That it should match a range of characters: [0-9]
  • That it should capture these matches, and not just match: \([0-9]\)
  • That it should use these captures in the replacement: \1 \2 \3
Try this:
Code:
sed -e 's/\([0-9]\{8\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1 \2:\3:\4/'

Explanation from left to right:
Take 8 successive digits (YYYYMMDD) and save them in capture group 1. Then, take 2 successive digits 3 times in a row (HH, MM, SS), and save them to capture groups 2, 3, and 4. Replace the previously matched string with the values from capture group 1, followed by a space, followed by capture groups 2, 3, and 4, seperated by a double colon each.

Slightly shorted Perl version (if available):
Code:
perl -pe 's/(\d{8})(\d{2})(\d{2})(\d{2})/$1 $2:$3:$4/'

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Change the date format

Hi all, I have a file that every line starts with the date and time. The format is like YYYYMMDDHHMM and I woulk like to change it to MM/DD/YY<space>HH:MM. I tried to figure out a way to do it with sed, but I don't know how I could reorganize the digits of the first format. Does anyone have any... (1 Reply)
Discussion started by: geovas
1 Replies

2. Shell Programming and Scripting

change date format

Hi, I have the variable "$date_update" in that form: 2011-12-31T13:00:09Z and I would like to change it to 31/12/2011 13:00:09 (Date and Time separated by a blank). Does anyone has a simple solution for that? (using Korn Shell) Cheers Jurgen (4 Replies)
Discussion started by: jurgen
4 Replies

3. Shell Programming and Scripting

Date format change

Dear Friends, Need your help once again, I have a variable ( e.g. ${i}) whoch has date in MM/DD/YYYY (E.g. 12/31/2011) format. I want to change it to DD/MM/YYYY (e.g. 31/12/2011) format. Request you to guide me as we are unable to do the same. Thanks in advance Anu. (1 Reply)
Discussion started by: anushree.a
1 Replies

4. Shell Programming and Scripting

Change Date Format

Hi Guys, I had a scenario like this.. It seems very silly...dont think it as a home work question.....:) i tried it many ways but i didn't achieve this... start_date=May122011 here i want to change the start_date in to 20110512 start_date=20110512 tell me how can we achive... (5 Replies)
Discussion started by: apple2685
5 Replies

5. Shell Programming and Scripting

Date Format Change

Hi, Please can I have some command to get yesterday in YYMMDD format? This will be used in ksh Thanks, (2 Replies)
Discussion started by: smalya
2 Replies

6. Shell Programming and Scripting

Change date format

Hi guys, I have a text file with lots of lines like this: MCOGT23R27815 27/07/07 27/05/09 SO733AM0235 30/11/07 30/11/10 NL123403N 04/03/08 04/03/11 0747AM7474 04/04/08 04/04/11 I want to change each line so the date format looks like this: MCOGT23R27815 07/07/27 09/05/27 ... (7 Replies)
Discussion started by: Tornado
7 Replies

7. Shell Programming and Scripting

Date Format Change

Hi I have a date format in a variable as Mon Jan 11 03:35:59 2010. how do i change it to YYYYMMDD format (3 Replies)
Discussion started by: keerthan
3 Replies

8. Solaris

change date format

dear members, ls -l drwxr-xr-x 40 root sys 1024 Jul 11 22:19 usr drwxr-xr-x 43 root sys 1024 Feb 1 2009 var i am using solaris 10 is that possibe to do drwxr-xr-x 40 root sys 1024 25-08-2009 22:19 usr drwxr-xr-x 43 root sys ... (4 Replies)
Discussion started by: hosney00ux
4 Replies

9. Shell Programming and Scripting

How to Change the Format of a Date

Hi All, this is my second post, last post reply was very helpful. I have a data that has date in DD/MM/YYYY (07/11/2008) format i want to replace the backslash by a dot(.) so that my awk script can read it inside the C shell script that i have written. i want to change 07/11/2008 to... (3 Replies)
Discussion started by: asirohi
3 Replies

10. UNIX for Dummies Questions & Answers

How to change it to the date format

Hi, I want to know how to change this string to date format 20061102122042 to 02-11-2006 12:20:42 or 02-Nov-2006 12:20:42 Please let me know at the earliest.Thanks in advance. Regards, Preetham R. (3 Replies)
Discussion started by: preethgideon
3 Replies
Login or Register to Ask a Question