convert d/m/yyyy to YYYY-MM-DD


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting convert d/m/yyyy to YYYY-MM-DD
# 1  
Old 09-09-2009
convert d/m/yyyy to YYYY-MM-DD

My csv has data like this

Code:
x,x,3452,2/18/1986,abc
x,g,19711,1/24/1986,abc

i want to replace date in the following format YYYY-mm-dd

how do i convert using awk script ?

Last edited by vgersh99; 09-09-2009 at 07:03 PM.. Reason: code tags, PLEASE!
# 2  
Old 09-09-2009
Code:
nawk -F, -v OFS=, '{split($4,a,"/");$4=sprintf("%s-%02d-%02d", a[3],a[1],a[2])}1' myFile.csv

# 3  
Old 09-09-2009
Hello Vgersh,

i've been studying awk and gawk recently and so I'd like to find out if we can do this using gsub or gensub functions?

when i used
Code:
/usr/xpg4/bin/awk -F\, '{printf "%s\n", $4}' FILE   it gives
2/18/1986
1/24/1986

But i tried it with gsub and gensub but couldnt do it (there are 3 sub fields in 2/18/1986)
Code:
usr/xpg4/bin/awk -F\, '{print gensub(/(.+)\/(.+)\/(.+)/, "\\3/\\2/\\1", "g", $4)}' FILE

this part gave error,
please advice me.
thanks in advance
# 4  
Old 09-09-2009
Quote:
Originally Posted by EAGL€
Hello Vgersh,

i've been studying awk and gawk recently and so I'd like to find out if we can do this using gsub or gensub functions?

when i used
Code:
/usr/xpg4/bin/awk -F\, '{printf "%s\n", $4}' FILE   it gives
2/18/1986
1/24/1986

But i tried it with gsub and gensub but couldnt do it (there are 3 sub fields in 2/18/1986)
Code:
usr/xpg4/bin/awk -F\, '{print gensub(/(.+)\/(.+)\/(.+)/, "\\3/\\2/\\1", "g", $4)}' FILE

this part gave error,
please advice me.
thanks in advance
'gensub' is a gawk extension not available in most other awk-s.
# 5  
Old 09-09-2009
sed 's~\([0-9]+\)/\([0-9]+\)/\([0-9]+\)~\3-\1-\2~' file
# 6  
Old 09-10-2009
Quote:
Originally Posted by edidataguy
sed 's~\([0-9]+\)/\([0-9]+\)/\([0-9]+\)~\3-\1-\2~' file
Edidataguy thanx, your code seemed ok to me but it didnt work, not gave an error and it does not update the file:
Code:
server1{root}>cat date.txt 
x,x,3452,2/18/1986,abc
x,g,19711,1/24/1986,abc
server1{root}>sed 's~\([0-9]+\)/\([0-9]+\)/\([0-9]+\)~\3-\1-\2~' date.txt
x,x,3452,2/18/1986,abc
x,g,19711,1/24/1986,abc

# 7  
Old 09-10-2009
A bit modification as follows needed:

Code:
sed 's|.*,\([0-9]*\)/\([0-9]*\)/\([0-9]*\),.*|\3-\1-\2|' file_name.txt

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Date format YYYY/MM/DD to DD/MM/YYYY

I am getting output of YYYY-MM-DD and want to change this to DD/MM/YYYY. When am running the query in 'Todd' to_date(column_name,'DD/MM/YYYY') am getting the required o/p of DD/MM/YYYY, But when am executing the same query(Netezza) in linux server(bash) am getting the output of YYYY-MM-DD file... (3 Replies)
Discussion started by: Roozo
3 Replies

2. Shell Programming and Scripting

Bash to convert to m-d-yyyy

I am using bash that when run downloads a file a verifies that there is data in it. What I am not able to do is have a user enter a date in any format they wish and have it converted to m-d-yyyy. Thank you :). Bash printf " Welcome to NGS analysis, checking for new files and creating a... (2 Replies)
Discussion started by: cmccabe
2 Replies

3. UNIX for Dummies Questions & Answers

Epoch date to YYYY/MM/DD or MM/DD/YYYY

I've seen a lot of posts on this and have tried the following: echo 1257000000| perl -e '($d,$m,$y)=(localtime(time-86400));$m+=1;$y+=1900;printf "$y/$m/$d\n";' But I am unable to convert a past Epoch date into a format such as YYYY/MM/DD or MM/DD/YYYY. I am using bash and don't know... (4 Replies)
Discussion started by: newbie2010
4 Replies

4. Shell Programming and Scripting

Date conversion help from dd/mm/yyyy to dd/Mon/yyyy i.e. 28/10/2012 to 28/Oct/2012

Hi I have a problem with Date format in my code. 1st I am trying to convert today's date to yesterday's using YESTERDAY3=`perl -e '@y=localtime(time()-86400); printf "%04d/%02d/%02d",$y+1900,$y+1,$y;$y;'` And once it is done I am trying to using the yesterday date in a grep command to... (3 Replies)
Discussion started by: nithinankam
3 Replies

5. Shell Programming and Scripting

Converting date DD MM YYYY to DD MON YYYY

Hello, I am writing a script that parses different logs and produces one. In the source files, the date is in DD MM YYYY HH24:MI:SS format. In the output, it should be in DD MON YYY HH24:MI:SS (ie 25 Jan 2010 16:10:10) To extract the dates, I am using shell substrings, i.e.: read line ... (4 Replies)
Discussion started by: Adamm
4 Replies

6. Shell Programming and Scripting

change date format from yyyy/mm/dd to dd/mm/yyyy

(Attention: Green PHP newbie !) I have an online inquiry form, delivering a date in the form yyyy/mm/dd to my feedback form. If the content passes several checks, the form sends an e-mail to me. All works fine. I just would like to receive the date in the form dd/mm/yyyy. I tried with some code,... (6 Replies)
Discussion started by: keyboarder
6 Replies

7. Shell Programming and Scripting

Sed: zero-padding dates (or: convert d/m/yyyy to dd/mm/yyyy)

Hi all I have some pipe-separated data in the form: 5/12/2008 00:00:00|31/1/2009 00:00:00|SOMESTUFF|OTHERSTUFF 12/31/2008 00:00:00|15/1/2009 00:00:00|MORESTUFF|REMAININGSTUFF 1/1/1023 00:00:00|16/5/2047 00:00:00|THEREST|YETMORE I need to zero-pad the single-digit days and months, using... (3 Replies)
Discussion started by: jgrogan
3 Replies

8. Shell Programming and Scripting

Convert DD-MMM-YYYY to MM-DD-YYYY

I have a file which has 100k+ records like this abc,05-JUN-1974,def,lkj,aaa def,11-SEP-1975,ghj,dis,dea I want to convert ex 05-JUN-1974 to 06/05/1974 Please help me with awk script to convert the whole file into MM-DD-YYYY Thank you! (2 Replies)
Discussion started by: nuthalapati
2 Replies

9. Shell Programming and Scripting

converting the date field from dd/mm/yyyy to yyyy/mm/dd

How to convert the date field from dd/mm/yyyy to yyyy/mm/dd in unix my script will generate text file which have two fields one is date and another is name of the server for example this is sample date which I have to sort based on older to newer date the problem is when I found out sort will... (4 Replies)
Discussion started by: pareshan
4 Replies

10. Shell Programming and Scripting

Change Date from dd-mmm-yyyy to mm/dd/yyyy

I want to change a date from format dd-mmm-yyyy to mm/dd/yyyy. Is there a way to do this with sed or do you have to write a case statement to convert JAN to 01? Thanks (9 Replies)
Discussion started by: stringzz
9 Replies
Login or Register to Ask a Question