Command for changing date format in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Command for changing date format in a file
# 1  
Old 02-16-2012
Command for changing date format in a file

Hi...

I have an inputfile name as :- abc_test_20120213.dat (date in yyyymmdd format)

I need the output file name as abc_test_13022012.dat (date in ddmmyyyy format)

Please help me on this...


Thanks in advance.
# 2  
Old 02-16-2012
Code:
x='abc_test_20120213.dat'
y=${x%_*}
z=$(date -d `echo ${x%.dat} | cut -d_ -f3` +%d%m%Y)
echo "${y}_$z.dat"


Last edited by balajesuri; 02-16-2012 at 06:57 AM..
This User Gave Thanks to balajesuri For This Post:
# 3  
Old 02-16-2012
Code:
$ x="abc_test_20120213.dat"

$ y=`echo $x | sed 's/\(.*_\)\(....\)\(..\)\(..\)/\1\4\3\2/'`

$ echo $y
abc_test_13022012.dat

Guru.
This User Gave Thanks to guruprasadpr For This Post:
# 4  
Old 02-16-2012
Quote:
Originally Posted by guruprasadpr
Code:
$ x="abc_test_20120213.dat"

$ y=`echo $x | sed 's/\(.*_\)\(....\)\(..\)\(..\)/\1\4\3\2/'`

$ echo $y
abc_test_13022012.dat

Guru.
Thanks Guru,

Could you please explain this pattern sed 's/\(.*_\)\(....\)\(..\)\(..\)/\1\4\3\2/'` , It will be very helpful.
This User Gave Thanks to kalpeer For This Post:
# 5  
Old 02-16-2012
Hi Kalpeer,

\( ..... \) :- this is called save operator, what ever you will put in side this like \(abc\), will be stored in unix system buffer(\1..\9). There are 9 system buffers present in unix which is used by shell to store some value for later use.

Here in this command:- sed 's/search/replace/'
1) sed 's/\(.*_\)\(....\)\(..\)\(..\)/\1\4\3\2/' :- the highlighted save operator will hold .*_ means "abc_test_" and will be stored in \1 (first system buffer)
2) sed 's/\(.*_\)\(....\)\(..\)\(..\)/\1\4\3\2/' :- the highlighted save operator will hold .... means 2012 and will be stored in \2 system buffer.

in this way month .. will be stored in \3 system buffer and day will be stored in \4 system buffer.

then you will replace the whole content with \1 means "abc_test_", \4 means day "13", \3 means month"02", \4 means year"2012". So finally you will get abc_test_13022012.dat

Please reply me if you r not clear abt save operator.... thnx
This User Gave Thanks to gani_85 For This Post:
# 6  
Old 02-16-2012
Quote:
Originally Posted by gani_85
Hi Kalpeer,

\( ..... \) :- this is called save operator, what ever you will put in side this like \(abc\), will be stored in unix system buffer(\1..\9). There are 9 system buffers present in unix which is used by shell to store some value for later use.

Here in this command:- sed 's/search/replace/'
1) sed 's/\(.*_\)\(....\)\(..\)\(..\)/\1\4\3\2/' :- the highlighted save operator will hold .*_ means "abc_test_" and will be stored in \1 (first system buffer)
2) sed 's/\(.*_\)\(....\)\(..\)\(..\)/\1\4\3\2/' :- the highlighted save operator will hold .... means 2012 and will be stored in \2 system buffer.

in this way month .. will be stored in \3 system buffer and day will be stored in \4 system buffer.

then you will replace the whole content with \1 means "abc_test_", \4 means day "13", \3 means month"02", \4 means year"2012". So finally you will get abc_test_13022012.dat

Please reply me if you r not clear abt save operator.... thnx
got it..Thanks a lot guru. Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Changing date format

how do i change the following to show me what the date was 7 days ago? date +%Y-%m-%d (1 Reply)
Discussion started by: SkySmart
1 Replies

2. Shell Programming and Scripting

Changing date format in CSV file

I have a CSV file with a date format like this; 11/19/2012 17:37:00,1.372,121.6 11/19/2012 17:38:00,0.743,121.6 Want to change the time stamp to seconds after 1970 so I can get the data in rrdtool. For anyone interested, this is data from a TED5000 unit and is Kwatts and volts. Needs to... (3 Replies)
Discussion started by: ottsm
3 Replies

3. Shell Programming and Scripting

Changing Date Format

How can i make the date command output yesterday's date, current date and the date 4 days ago, in the following format: 2012-10-03 code: date +% ???? (3 Replies)
Discussion started by: SkySmart
3 Replies

4. Shell Programming and Scripting

Changing the date format

Hi all, I have a file with below data af23b|11-FEB-12|acc7 ad23b|12-JAN-12|acc4 as23b|15-DEC-11|acc5 z123b|18-FEB-12|acc1 I need the output as below:-(date in yyyymmdd format) af23b|20120211|acc7 ad23b|20120112|acc4 as23b|20111215|acc5 z123b|20120218|acc1 Please help me on this.... (7 Replies)
Discussion started by: gani_85
7 Replies

5. UNIX for Advanced & Expert Users

Changing the date format

Hi All, I am new to this forum, could any one help me out in resolving the below issue. Input of the flat file contains several lines of text for example find below: 5022090,2,4,7154,88,,,,,4/1/2011 0:00,Z,L,2 5022090,3,1,6648,88,,,,,4/1/2011 0:00,Z,,1 5022090,4,1,6648,88,,,,,4/1/2011... (0 Replies)
Discussion started by: av_sagar
0 Replies

6. UNIX for Dummies Questions & Answers

Changing from Excel date format to MySQL date format

I have a list of dates in the following format: mm/dd/yyyy and want to change these to the MySQL standard format: yyyy-mm-dd. The dates in the original file may or may not be zero padded, so April is sometimes "04" and other times simply "4". This is what I use to change the format: sed -i '' -e... (2 Replies)
Discussion started by: figaro
2 Replies

7. Post Here to Contact Site Administrators and Moderators

changing the format of date

In my shell script i have a variable which stores date in the format of YYYYMMDD. Is there any way to format this value to MM/DD/YYYY. Thanks. (1 Reply)
Discussion started by: nasirgondal
1 Replies

8. UNIX for Dummies Questions & Answers

Changing the format of date

Hi, There are lots of threads about how to manipulate the date using date +%m %....... But how can I change the default format of the commad date? $ date Mon Apr 10 10:57:15 BST 2006 This would be on fedora and SunOs. Cheers, Neil (4 Replies)
Discussion started by: nhatch
4 Replies

9. Shell Programming and Scripting

Changing date format

Hi, Is there any way to change one date format to another ?? I mean I have a file having dates in the format (Thu Sep 29 2005) ... and i wud like to change these to YYYYMMDD format .. is there any command which does so ?? Or anything like enum which we have in C ?? Thanks in advance, ... (5 Replies)
Discussion started by: Sabari Nath S
5 Replies

10. Shell Programming and Scripting

Changing the date format

Hi, I know there is a Q/A section and lots of posts regarding date command here. I am sorry to start a new thread. I am very new to shell scripting (actually i am working on my first program), so please forgive my ignorance. I could not find an answer to my problem else where so i posted it... (10 Replies)
Discussion started by: Dream86
10 Replies
Login or Register to Ask a Question