Sponsored Content
Top Forums Shell Programming and Scripting Bash Scripting with date format conversion Post 302974281 by stomp on Friday 27th of May 2016 07:56:26 AM
Old 05-27-2016
So you you want to make a filename conversion like this:

Code:
INPUT    : postwrf_d01_YYYYMMDD_ZZZZ_f0HHHH.grb2
OUTPUT 1 :         d01_YYYYMMDD_ZZZZ_f0HHHH.grb2
OUTPUT 2 :             YYYYMMDD_ZZZZ_f0HHHH.gr2 
OUTPUT 3 :    nwp.TC23.YYYYMMDDZZ.f0MMMM

I suggest you capture the wanted subgroups e. g. with sed and then reassemble the string for the different needs.

Code:
#!/bin/bash
FILENAME="postwrf_d01_20160527_0600_f01000.grb2"
set $( echo "$filename"  \
   | sed -r -e 's/^postwrf_d01_([0-9]{4})([0-9]{2})([0-9]{2})_([0-9]{4})_f0([0-9]{4}).grb2$/\1 \2 \3 \4 \5/'  )
YYYY="$1"
MM="$2"
DD="$3"
ZZZZ="$4"
HHHH="$5"

OUTPUT_1= "d01_${YYYY}${MM}${DD}_${ZZZZ}_f0${HHHH}.grb2"

# Now calculate the hour to minutes with the (( )) function. (See man bash for arithmetic evaluation).
((MINUTES=....))
# For leading zeros you may need to use printf. 
MINUTES=$(printf "%04d" $MINUTES)


Last edited by stomp; 05-27-2016 at 01:37 PM..
This User Gave Thanks to stomp For This Post:
 

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 conversion from Standard/given format to seconds/epoch

I am trying get time difference of two dates in secs. Initially I want to convert a standard date format to epoch for two dates and then subtract the two epoch dates. Example : date -d "2007-09-01 17:30:40" '+%s' But this gives me below error date: illegal option -- d Usage: date OS: AIX... (6 Replies)
Discussion started by: bpaac
6 Replies

4. Shell Programming and Scripting

Most vexing: Sed or Awk scripting for date conversion needed

Hi, I have some files being sent to me that have dates in them in this format: from 1/8/2011 15:14:20 and I need the dates in this format (mysql date format) To 2011-01-08 15:14:20 all I have so far is the regexp that detects the format: sed -r -e 's@\1/\2/\3\4\5\6]::$@do... (7 Replies)
Discussion started by: Astrocloud
7 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

Military type format date/time conversion

Hello All, I have a requirement to convert a 12 hour format to 24 hour time format and the sample input /out put is below Input Time format : Nov 2 2011 12:16AM Out Put Format : Nov 2 2011 0:16 Input : Nov 2 2011 4:16PM Out Put: Nov 2 2011 16:16 I have done this using a... (6 Replies)
Discussion started by: jambesh
6 Replies

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

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

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. 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
LIBBASH(7)							  libbash Manual							LIBBASH(7)

NAME
libbash -- A bash shared libraries package. DESCRIPTION
libbash is a package that enables bash dynamic-like shared libraries. Actually its a tool for managing bash scripts whose functions you may want to load and use in scripts of your own. It contains a 'dynamic loader' for the shared libraries ( ldbash(1)), a configuration tool (ldbashconfig(8)), and some libraries. Using ldbash(1) you are able to load loadable bash libraries, such as getopts(1) and hashstash(1). A bash shared library that can be loaded using ldbash(1) must answer 4 requirments: 1. It must be installed in $LIBBASH_PREFIX/lib/bash (default is /usr/lib/bash). 2. It must contain a line that begins with '#EXPORT='. That line will contain (after the '=') a list of functions that the library exports. I.e. all the function that will be usable after loading that library will be listed in that line. 3. It must contain a line that begins with '#REQUIRE='. That line will contain (after the '=') a list of bash libraries that are required for our library. I.e. every bash library that is in use in our bash library must be listed there. 4. The library must be listed (For more information, see ldbashconfig(8)). Basic guidelines for writing library of your own: 1. Be aware, that your library will be actually sourced. So, basically, it should contain (i.e define) only functions. 2. Try to declare all variables intended for internal use as local. 3. Global variables and functions that are intended for internal use (i.e are not defined in '#EXPORT=') should begin with: __<library_name>_ For example, internal function myfoosort of hashstash library should be named as __hashstash_myfoosort This helps to avoid conflicts in global name space when using libraries that come from different vendors. 4. See html manual for full version of this guide. AUTHORS
Hai Zaar <haizaar@haizaar.com> Gil Ran <ril@ran4.net> SEE ALSO
ldbash(1), ldbashconfig(8), getopts(1), hashstash(1) colors(1) messages(1) urlcoding(1) locks(1) Linux Epoch Linux
All times are GMT -4. The time now is 03:23 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy