Sponsored Content
Top Forums Shell Programming and Scripting Military type format date/time conversion Post 302571925 by in2nix4life on Tuesday 8th of November 2011 03:17:08 PM
Old 11-08-2011
What you already have works, you just need to tweak your regex:

Code:
#!/usr/bin/env perl

use strict;

my $line;

while($line = <DATA>) {
    $line =~ s/(\d+)(:\d+)(A|P)M\,/($3 eq 'a')?($1%12).$2:($1%12+12).$2/e;
    chomp($line);
    print "$line\n";
}

exit(0);

__DATA__
Nov 2 2011 12:01AM,52893,420,1,4,0,52834,4,1208,67664942,603459924403.0,1,150054,1208,3
Nov 2 2011 5:16PM,52127,420,1,4,0,52122,4,1429,55943831,603459924406.0,1,150054,1429,3

Output:

Nov 2 2011 12:0152893,420,1,4,0,52834,4,1208,67664942,603459924403.0,1,150054,1208,3
Nov 2 2011 17:1652127,420,1,4,0,52122,4,1429,55943831,603459924406.0,1,150054,1429,3

Basically removing the '.' before the 'M' from you regex will do it.
 

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. Windows & DOS: Issues & Discussions

conversion of unix time format

help me to convert unix time format into windows time format using java i have linux time ex. 1075329297.572 (2 Replies)
Discussion started by: sari
2 Replies

3. Shell Programming and Scripting

Convert Epoch time format to normal date time format in the same file

I have a file named "suspected" with series of line like these : {'protocol': 17, 'service': 'BitTorrent KRPC', 'server': '219.78.120.166', 'client_port': 52044, 'client': '10.64.68.44', 'server_port': 8291, 'time': 1226506312L, 'serverhostname': ''} {'protocol': 17, 'service': 'BitTorrent... (3 Replies)
Discussion started by: rk4k
3 Replies

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

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

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

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

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

10. UNIX for Beginners Questions & Answers

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: $: cat xyz.txt A ... (2 Replies)
Discussion started by: newbie_01
2 Replies
timetrans(3pm)						User Contributed Perl Documentation					    timetrans(3pm)

NAME
Net::DNS::SEC::Tools::timetrans - Convert an integer seconds count into text units. SYNOPSIS
use Net::DNS::SEC::Tools::timetrans; $timestring = timetrans(86488); $timestring = fuzzytimetrans(86488); DESCRIPTION
The timetrans() interface in Net::DNS::SEC::Tools::timetrans converts an integer seconds count into the equivalent number of days, hours, and minutes. The time converted is a relative time, not an absolute time. The returned time is given in terms of days, hours, minutes, and seconds, as required to express the seconds count appropriately. The fuzzytimetrans() interface converts an integer seconds count into the equivalent number of weeks or days or hours or minutes. The unit chosen is that which is most natural for the seconds count. One decimal place of precision is included in the result. INTERFACES
The interfaces to the Net::DNS::SEC::Tools::timetrans module are given below. timetrans() This routine converts an integer seconds count into the equivalent number of days, hours, and minutes. This converted seconds count is returned as a text string. The seconds count must be greater than zero or an error will be returned. Return Values: If a valid seconds count was given, the count converted into the appropriate text string will be returned. An empty string is returned if no seconds count was given or if the seconds count is less than one. fuzzytimetrans() This routine converts an integer seconds count into the equivalent number of weeks, days, hours, or minutes. This converted seconds count is returned as a text string. The seconds count must be greater than zero or an error will be returned. Return Values: If a valid seconds count was given, the count converted into the appropriate text string will be returned. An empty string is returned if no seconds count was given or if the seconds count is less than one. EXAMPLES
timetrans(400) returns 6 minutes, 40 seconds timetrans(420) returns 7 minutes timetrans(888) returns 14 minutes, 48 seconds timetrans(86400) returns 1 day timetrans(86488) returns 1 day, 28 seconds timetrans(715000) returns 8 days, 6 hours, 36 minutes, 40 second timetrans(720000) returns 8 days, 8 hours fuzzytimetrans(400) returns 6.7 minutes fuzzytimetrans(420) returns 7.0 minutes fuzzytimetrans(888) returns 14.8 minutes fuzzytimetrans(86400) returns 1.0 day fuzzytimetrans(86488) returns 1.0 day fuzzytimetrans(715000) returns 1.2 weeks fuzzytimetrans(720000) returns 1.2 weeks COPYRIGHT
Copyright 2004-2012 SPARTA, Inc. All rights reserved. See the COPYING file included with the DNSSEC-Tools package for details. AUTHOR
Wayne Morrison, tewok@tislabs.com SEE ALSO
timetrans(1) perl v5.14.2 2012-06-18 timetrans(3pm)
All times are GMT -4. The time now is 06:02 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy