Visit Our UNIX and Linux User Community


Date format change from mm/dd/yyyy to yyyymmdd in comma seperate line in perl


 
Thread Tools Search this Thread
Top Forums Programming Date format change from mm/dd/yyyy to yyyymmdd in comma seperate line in perl
# 1  
Old 03-07-2017
Date format change from mm/dd/yyyy to yyyymmdd in comma seperate line in perl

Hi All,

I have line

Code:
,A,FDRM0002,12/21/2017,,0.961751583,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

it contains date in mm/dd/yyyy format i want to change this to yyyymmdd format using perl.


Moderator's Comments:
Mod Comment Use code tags, thanks.

Last edited by zaxxon; 03-07-2017 at 11:14 AM..
# 2  
Old 03-07-2017
What have you tried so far?
# 3  
Old 03-07-2017
tried below code but its giving command garbled error

Code:
$_= system("sed", "s/\([0-9]*\)\/\([0-9]*\)\/\(....\)/\30\10\2/g", "$line");

$line contain the line that i am passing and posted above.

Last edited by vishal0746; 03-07-2017 at 11:29 AM..
# 4  
Old 03-07-2017
If it is known that any token that has the "/" character is always a date in "mm/dd/yyyy" format, then you could use this:

Code:
$
$ cat input_1.txt
,A,FDRM0002,12/21/2017,,0.961751583,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
$
$ perl -lne 's|(\d+)/(\d+)/(\d+)|$3$1$2|g; print' input_1.txt
,A,FDRM0002,20171221,,0.961751583,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
$
$

The code above will convert all such (supposedly date-like) occurrences on each line of the file. Here's another example:

Code:
$
$ cat input_2.txt
,A,FDRM0002,12/21/2017,,0.961751583,,3/31/2016,,,,,,,,,,,,,,,,,,,,,,,,10/3/2015,,,,,,,,,,,
$
$ perl -lne 's|(\d+)/(\d+)/(\d+)|$3$1$2|g; print' input_2.txt
,A,FDRM0002,20171221,,0.961751583,,2016331,,,,,,,,,,,,,,,,,,,,,,,,2015103,,,,,,,,,,,
$
$

If you want only the first occurrence to be changed, then remove the qualifier "g" at the end of the s/// operator.

On the other hand, if:
(a) it is known that the 4th token is the one that has the date in it, or
(b) only the 4th token is to be changed, the others are not (whether they are dates or not)
then you could do something like the following:

Code:
$
$ cat input_3.txt
,A,FDRM0002,12/21/2017,,0.961751583,,new text/image,,,,,,,,,,,,,,,,,,,,,,,,11/29/2016,,,,,,,,,,,
$
$ perl -F"," -lane '$F[3] =~ s|(\d+)/(\d+)/(\d+)|$3$1$2|; print join(",", @F)' input_3.txt
,A,FDRM0002,20171221,,0.961751583,,new text/image,,,,,,,,,,,,,,,,,,,,,,,,11/29/2016,,,,,,,,,,,
$
$

# 5  
Old 03-08-2017
Thanks its working for me.

the code is working for me.Thanks
# 6  
Old 03-13-2017
Can you please suggest how to achieve the format change to YYYYMMDDHHMMSS
# 7  
Old 03-13-2017
Quote:
Originally Posted by vishal0746
Can you please suggest how to achieve the format change to YYYYMMDDHHMMSS
- Since there is no hour, minute and second information in this: "12/21/2017", what do you want to see in the "HHMMSS" portion of "YYYYMMDDHHMMSS" ?
- Can you have dates with and without timestamps in your data file?
- Could you post a representative sample of your data file?

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

Validating date in yyyymmdd format using PERL

Hi all, i had a code where in user will enter a date in yyyymmdd format.. i didnt use any validation for the date and now the problem is if a user enters date instead of month after year it is proceeding with the code.. like if the date is 20120426 and if the user enters 20122604 it... (4 Replies)
Discussion started by: smarty86
4 Replies

3. Shell Programming and Scripting

Converting Date from YYYYMMDD to DD-MON-YYYY

Hi , I need to convert date from YYYYMMDD to DD-MON-YYYY e.g 20111214 to 14-Dec-2011 Please help. (17 Replies)
Discussion started by: ady_koolz
17 Replies

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

5. Shell Programming and Scripting

Date after 5 days from current date in YYYYMMDD format

Hello Experts, How do i get date after 5 days from current date in YYYYMMDD format? How do you compare date in YYYYMMDD format? Thanks (8 Replies)
Discussion started by: needyourhelp10
8 Replies

6. Shell Programming and Scripting

Change the date format from mmddyyyy to yyyymmdd

How do I change the date format from mmddyyyy to yyyymmdd in PERL. Can any one help me please. (3 Replies)
Discussion started by: thankful123
3 Replies

7. Shell Programming and Scripting

PERL String to Date (Custom format yyyymmdd to dd-mon-yyyy)

Hi All, I am learning PERL for one of the projects, and in one of these scripts, I read a flat text file and print in the terminal. The problem is, the text file has a date field. The format is yyyymmdd. I need to display this as dd-mon-yyyy. Any ideas to do this? Thanks a lot for the... (9 Replies)
Discussion started by: guruparan18
9 Replies

8. Shell Programming and Scripting

convert date format YYYYMMDD to MM/DD/YYYY

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. (8 Replies)
Discussion started by: nasirgondal
8 Replies

9. UNIX for Dummies Questions & Answers

Format date from MM/DD/YYYY to YYYYMMDD

I have a file with some date columns in MM/DD/YYYY format: SMPBR|DUP-DO NOT USE|NEW YORK||16105|BA5270715|6/6/2007 |MWERNER|109||||JOHN||SMITH|MD|72211118||||||74559|21 WILMINGTON RD||D|11/6/2003|SL# MD CONTACT-LIZ RICHARDS|||0|Y|N||1411458| And I want to convert the date format to: ... (5 Replies)
Discussion started by: ChicagoBlues
5 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

Featured Tech Videos