Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Date format conversion how to change this from using nawk to awk Post 303009338 by newbie_01 on Tuesday 12th of December 2017 11:58:41 PM
Old 12-13-2017
Date format conversion how to change this from using nawk to awk

Hi,

I have a file where I need to change the date format on the nth field from DD-MM-YYYY to YYYY-MM-DD so I can accurately sort the record by dates

From regex - Use sed or awk to fix date format - Stack Overflow, I found an example using nawk.

Test run as below:

Code:
$: cat xyz.txt
A                    21-11-2017 03:18:37 TESTING 17-06-2017 22:00:42 Accessed:   2,618,310,656 /tmp/abc.dbf
I                    11-07-2017 03:35:07 TESTING 17-06-2017 22:00:42 Accessed:   2,618,310,656 /tmp/abc.dbf
I                    14-07-2017 11:22:26 TESTING 17-06-2017 22:00:42 Accessed:   2,618,310,656 /tmp/abc.dbf
I                    21-07-2017 02:15:47 TESTING 17-06-2017 22:00:42 Accessed:   2,618,310,656 /tmp/abc.dbf
I                    21-08-2017 02:16:07 TESTING 17-06-2017 22:00:42 Accessed:   2,618,310,656 /tmp/abc.dbf
I                    21-09-2017 02:16:15 TESTING 17-06-2017 22:00:42 Accessed:   2,618,310,656 /tmp/abc.dbf
I                    21-10-2017 03:17:36 TESTING 17-06-2017 22:00:42 Accessed:   2,618,310,656 /tmp/abc.dbf
 $:
 $: nawk '
>     BEGIN { }
>     { split($2, date, /-/)
>       $2 = date[3] "-" date[2] "-" date[1]
>           split($5, date, /-/)
>       $5 = date[3] "-" date[2] "-" date[1]
>       print $0
>     }
> ' xyz.txt
A 2017-11-21 03:18:37 TESTING 2017-06-17 22:00:42 Accessed: 2,618,310,656 /tmp/abc.dbf
I 2017-07-11 03:35:07 TESTING 2017-06-17 22:00:42 Accessed: 2,618,310,656 /tmp/abc.dbf
I 2017-07-14 11:22:26 TESTING 2017-06-17 22:00:42 Accessed: 2,618,310,656 /tmp/abc.dbf
I 2017-07-21 02:15:47 TESTING 2017-06-17 22:00:42 Accessed: 2,618,310,656 /tmp/abc.dbf
I 2017-08-21 02:16:07 TESTING 2017-06-17 22:00:42 Accessed: 2,618,310,656 /tmp/abc.dbf
I 2017-09-21 02:16:15 TESTING 2017-06-17 22:00:42 Accessed: 2,618,310,656 /tmp/abc.dbf
I 2017-10-21 03:17:36 TESTING 2017-06-17 22:00:42 Accessed: 2,618,310,656 /tmp/abc.dbf
 $:

Unfortunately, some of the Solaris servers, Solaris8, do not have nawk and using awk gives error below.

Code:
 awk '
>      BEGIN { }
>      { split($2, date, /-/)
>        $2 = date[3] "-" date[2] "-" date[1]
>            split($5, date, /-/)
>        $5 = date[3] "-" date[2] "-" date[1]
>        print $0
>      }
>  ' xyz.txt
awk: syntax error near line 3
awk: illegal statement near line 3
awk: syntax error near line 5
awk: illegal statement near line 5

May I know how to get what I am wanting to do to work using awk?

Please advise. Thanks.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Date format conversion function

Hello, does somebody knows about a function that would convert a date like: YYMMDD into a date like YYYY-MM-DD ? Thank you for your ideas :) (9 Replies)
Discussion started by: Cecile
9 Replies

2. UNIX for Dummies Questions & Answers

date format conversion

hi, i have a file in which i get date format as 22/APR/2010... now i want the date format to be in 22-04-2010 if the month changes to may the file should also have 05 as month.... pls help (3 Replies)
Discussion started by: siva_nagarajan
3 Replies

3. Shell Programming and Scripting

Date format conversion

Hi All, Can someone please let me know how can i convert the date format in unix as follow: From: 24 Oct 2011 i.e $(date +'%d %b %Y') To: 111024 i.e $(date +%y%m%d) Thanks in advance (3 Replies)
Discussion started by: davidtd
3 Replies

4. Shell Programming and Scripting

Using awk or nawk to convert epoch time to date format

Looking for some help and usually when I do a search this site comes up. Hopefully someone can give me a little direction as to how to use one of these two commands to achieve what I'm trying to do. What am I trying to do? I need to take the time value in epoch format returned from the... (5 Replies)
Discussion started by: minigts
5 Replies

5. Shell Programming and Scripting

awk - change date format

I have below date format in a CSV file. (dd/mm/yyyy) Ex Input: 9/8/2013 Need to convert it into below format (yyyymmdd ) and redirect to new file. Ex Output: 20130809 How do I use awk here to change the format and if leading 0 (zero) is not then add it. Please help. Thanks. (8 Replies)
Discussion started by: vegasluxor
8 Replies

6. Shell Programming and Scripting

Date conversion from 24 hr format to 12 hr format

hi i want to convert date procured from sone operation which will be in 24hr format to 12 hr format displaying AM and PM # date -d @1362545068 Tue Mar 5 23:44:28 EST 2013 # this Tue Mar 5 23:44:28 EST 2013 i want to convert it so that output is as below Tue... (2 Replies)
Discussion started by: vivek d r
2 Replies

7. Shell Programming and Scripting

Date conversion and Format

Hello , I have a record in below format Hostname | Query: 0 | Release: 0 | files: 2 | Files_examined: 2 | SET timestamp=1396778638; | select * from test I need output in below format Hostname | 0 | 0 | 2 | 2 | 04/06/2014|03:03:58 | select * from test I was able to get above output... (1 Reply)
Discussion started by: Tomlight
1 Replies

8. Shell Programming and Scripting

Need to change date format in a csv file using awk

Example: Input csv file 00245DLS,Sitel Ocala,12/31/2014,18:45,1.00,7.00,0.00,0.00 00245DLS,Sitel Ocala,12/31/2014,19:00,-1.00,-1.00,-1.00,-1.00 00245HB,Charlotte,01/01/2015,00:00,-1.00,-1.00,-1.00,0.00 Output csv file 00245DLS,Sitel Ocala,2014/12/31,18:45,1.00,7.00,0.00,0.00 00245DLS,Sitel... (8 Replies)
Discussion started by: adit
8 Replies

9. Shell Programming and Scripting

Date format conversion

Hi, i have to check the file whether it is created today. here is the ls -l o/p -rw-r----- 20000 50000 130 Dec 12 10:21 file.txt im able to check if file is created today or not if the timestamp is in 2014-12-12 format by comparing $(date +Y-%m-%d) but stuckup as it is of format Dec 12... (6 Replies)
Discussion started by: JSKOBS
6 Replies

10. Shell Programming and Scripting

Bash Scripting with date format conversion

I have a script below and wanted to change the output into three different file format (3 separate script) #!bin/bash #input file format postwrf_d01_20131206_0600_f08400.grb2 #postwrf_d01_YYYYMMDD_ZZZZ_f0HHHH.grb2 #zzzz= 0000,0600,1200,1800 (in UTC) #HHHH=00000,00600,01200,01800 ..ect (in... (1 Reply)
Discussion started by: cumulus_255
1 Replies
DBASE_REPLACE_RECORD(3) 						 1						   DBASE_REPLACE_RECORD(3)

dbase_replace_record - Replaces a record in a database

SYNOPSIS
bool dbase_replace_record (int $dbase_identifier, array $record, int $record_number) DESCRIPTION
Replaces the given record in the database with the given data. PARAMETERS
o $dbase_identifier - The database link identifier, returned by dbase_open(3) or dbase_create(3). o $record - An indexed array of data. The number of items must be equal to the number of fields in the database, otherwise dbase_replace_record(3) will fail. Note If you're using dbase_get_record(3) return value for this parameter, remember to reset the key named deleted. o $record_number - An integer which spans from 1 to the number of records in the database (as returned by dbase_numrecords(3)). RETURN VALUES
Returns TRUE on success or FALSE on failure. EXAMPLES
Example #1 Updating a record in the database <?php // open in read-write mode $db = dbase_open('/tmp/test.dbf', 2); if ($db) { // gets the old row $row = dbase_get_record_with_names($db, 1); // remove the 'deleted' entry unset($row['deleted']); // Update the date field with the current timestamp $row['date'] = date('Ymd'); // Replace the record dbase_replace_record($db, $row, 1); dbase_close($db); } ?> SEE ALSO
dbase_add_record(3), dbase_delete_record(3). PHP Documentation Group DBASE_REPLACE_RECORD(3)
All times are GMT -4. The time now is 03:36 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy