Visit Our UNIX and Linux User Community


Change the date format


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Change the date format
# 1  
Old 08-13-2012
Change the date format

Hi,

I was looking for a script to change the date from one format to other. A search in the forum gave me the below script as a result.

Code:
 
#! /bin/ksh

format=YYYYMMDD

YEAR=${format%????}
DAY=${format#??????}
MON=${format#$YEAR}
MON=${MON%$DAY}
echo $MON/$DAY/$YEAR

I got it from the below link
https://www.unix.com/shell-programmin...m-dd-yyyy.html

The above script works perfectly fine. But I'm really not sure how the above script works. I'm just an amateur when it comes to RegEx. A search on google did not help me either.

My question, how the above script works? Can someone trace an example for me?

Thanks
# 2  
Old 08-13-2012
These use the shell's pattern matching operators.

Code:
YEAR=${format%????}
### Delete 4 characters from the end of format's value (format remains unchanged) 
### and return that string (YYYY in this case)

DAY=${format#??????}
### Delete 6 characters from the beginning of format's value (format remains unchanged) 
### and return that string (DD in this case)

MON=${format#$YEAR}
### Delete the string corresponding to YEAR's value (YYYY) from the beginning of format's value (format remains unchanged) 
### and return that string (MMDD in this case)

MON=${MON%$DAY}
### Delete the string corresponding to DAY's value (DD) from the end of MON's value (MMDD)
### and return that string (MM in this case)

All this could be done using (if your shell supports it):
Code:
DAY=${format:6}
MON=${format:4:2}
YEAR=${format:0:4}


Last edited by elixir_sinari; 08-13-2012 at 10:41 AM..
This User Gave Thanks to elixir_sinari For This Post:
# 3  
Old 08-13-2012
Awesome. Thank you so much..

Previous Thread | Next Thread
Test Your Knowledge in Computers #502
Difficulty: Medium
If a function uses a particular process or algorithm such as a Fast Fourier Transform to perform an operation, it would not be appropriate to document it in a series of comments in the source code.
True or False?

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

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

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

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

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

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

9. UNIX for Advanced & Expert Users

Change date format

I know the command date +"%Y%m%d" can change today's date to digit format as below . $date +"%Y%m%d" 20071217 it works fine . now I want to do it back . If I have a file like below, (in the file , there are three lines, and each line have ; sign , after the ; sign is the date ) , I... (4 Replies)
Discussion started by: ust
4 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

Featured Tech Videos