Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Extract date and time part from filename Post 303033716 by Prathmesh on Wednesday 10th of April 2019 01:44:13 PM
Old 04-10-2019
Quote:
Originally Posted by RudiC
Hmmmm - not quite clear yet when you want the dots, and when the printf format strings, or when both... See how far this gets you:



Code:
awk '
FNR == 1        {FILENR++
                }
FILENR <= 2     {CNT++
                 CHFM[CNT] = $1
                 RGEX[CNT] = $2
                 DOTS[CNT] = $3
                 FMTS[CNT] = $4
                 next
                }
                {printf "%s", $0
                 for (j=4; j<=5; j++)   {TMP = $j
                                         PTR = 0
                                         for (i=1; i<=CNT; i++) if (match (TMP, CHFM[i]))       {printf "|%s|%s|%s|%s|%s", PTR + RSTART, RLENGTH, CHFM[i], DOTS[i], FMTS[i]
                                                                                                 TMP = substr (TMP, RSTART+RLENGTH)
                                                                                                 PTR += RSTART + RLENGTH - 1
                                                                                                }
                                        }
                 print ""
                }
'  FS=","  *format.csv FS="|" OFS="|" RECORD
SOURCE|LOGIN|SERVER|ABC_123_YYYYMMDD_V01P1234YYMMDDHHMISS.txt|ABC_123_V01P.YYYYMMDD.HHMISS.txt|CATEGORY|9|8|YYYYMMDD|........|%Y%m%d|26|6|YYMMDD|......|%y%m%d|32|6|HHMISS|......|%H%M%S|14|8|YYYYMMDD|........|%Y%m%d|23|6|HHMISS|......|%H%M%S

Thanks RudiC. This works perfectly well for me.
If I can ask for one more thing that arise with this result. Now, with the same three input files RECORD, date_format.csv and timestamp_format.csv, I need to group how many dates are in column 4 and 5.

For example, If the RECORD file has records -
Code:
$ cat RECORD
SOURCE|LOGIN|SERVER|ABC_123_YYYYMMDD_V01P1234YYMMDDHHMISS.txt|ABC_123_V01P.YYYYMMDD.HHMISS.txt|CATEGORY
SOURCE|LOGIN|SERVER|P_XYZ_1234_ABCD.YYYYMMDD.HHMISS.csv|Report.ABCD_csv.YYYYMMDD.HHMISS.csv|CATEGORY
$

Output should be -
Code:
SOURCE|LOGIN|SERVER|ABC_123_YYYYMMDD_V01P1234YYMMDDHHMISS.txt|ABC_123_V01P.YYYYMMDD.HHMISS.txt|CATEGORY|2|1|1|1
SOURCE|LOGIN|SERVER|P_XYZ_1234_ABCD.YYYYMMDD.HHMISS.csv|Report.ABCD_csv.YYYYMMDD.HHMISS.csv|CATEGORY|1|1|1|1

where,
SOURCE|LOGIN|SERVER|ABC_123_YYYYMMDD_V01P1234YYMMDDHHMISS.txt|ABC_123_V01P.YYYYMMDD.HHMISS.txt|CATEG ORY and SOURCE|LOGIN|SERVER|P_XYZ_1234_ABCD.YYYYMMDD.HHMISS.csv|Report.ABCD_csv.YYYYMMDD.HHMISS.csv|CATEGORY represents the input record.

Next 2 columns 2|1|1|1 represents, number of date and time fields which is part of date_format.csv and timestamp_format.csv in fields ABC_123_YYYYMMDD_V01P1234YYMMDDHHMISS.txt and P_XYZ_1234_ABCD.YYYYMMDD.HHMISS.csv i.e. column 4 of input file RECORD.
and Next 2 1|1|1|1 columns represents, number of date and time fields which is part of date_format.csv and timestamp_format.csv in fields ABC_123_V01P.YYYYMMDD.HHMISS.txt and Report.ABCD_csv.YYYYMMDD.HHMISS.csv i.e. column 5 of input file RECORD.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Insert date/time within a filename

Hi Guys, I need to script the renaming of files as followins: files: firstjd secondjo thirdjv My script needs to insert the date/time infront of the last 2 characters of the filenames above, any ideas greatly received :) the letters before the last 2 characters could change, I'm only... (7 Replies)
Discussion started by: cooperman
7 Replies

2. Shell Programming and Scripting

Extract date from filename and create a new file

Hi, i have a filename CRED20102009.txt in a server 20102009 is the date of the file ddmmaaaa format the complete route is /dprod/informatica/Fuentes/CRED20102009.csv i want to extract the date to create a new file named Parameters.txt I need to create Parameters.txt with this... (6 Replies)
Discussion started by: angel1001
6 Replies

3. Shell Programming and Scripting

how to update date part with new increment date time

hi experts, my requirement is like this i need to develop a shell script to update date part with new incremental date time in file some 'X' which is kept at some server location incrementing every two hours.as i am new to this scripting i need support from u people,thanx in advance (1 Reply)
Discussion started by: amanmro
1 Replies

4. Shell Programming and Scripting

Extract date from filename and set timestamp

I have lots of files in this format: dvgrab-2003.06.29_15-30-24.mpg The numbers represents the date and time (YYYY.MM.DD_HH-MM-SS) How can I extract the dates from the filenames, and use the dates in the file timestamp? I guess this can be done by using "find", "sed" and "touch"? Can... (6 Replies)
Discussion started by: qwerty1234
6 Replies

5. Shell Programming and Scripting

append a filename with system date and time

Hi, There are similar kind of posts, but none seems like working for me. Please correct me if I'm wrong. I need append/rename file abc.txt with file processed date and time like abc_systemdatetimestamp.txt and move it to different folder. for example I have /source/data/abc.txt ... (1 Reply)
Discussion started by: amsn08
1 Replies

6. UNIX for Dummies Questions & Answers

to extract all the part of the filename before a particular word in the filename

Hi All, Thanks in Advance I am working on a shell script. I need some assistance. My Requirement: 1) There are some set of files in a directory like given below OTP_UFSC_20120530000000_acc.csv OTP_UFSC_20120530000000_faf.csv OTP_UFSC_20120530000000_prom.csv... (0 Replies)
Discussion started by: aealexanderraj
0 Replies

7. Programming

to extract all the part of the filename before a particular word in the filename

Hi All, Thanks in Advance I am working on a shell script. I need some assistance. My code: if then set "subscriber" "promplan" "mapping" "dedicatedaccount" "faflistSub" "faflistAcc" "accumulator"\ "pam_account"; for i in 1 2 3 4 5 6 7 8;... (0 Replies)
Discussion started by: aealexanderraj
0 Replies

8. Shell Programming and Scripting

Extract a part of a filename containing a particular word

Hi All, Thanks in Advance Shell Script or Perl Script I am working on a shell script. I need some assistance. My Requirement: 1) There are some set of files in a directory like given below OTP_UFSC_20120530000000_acc.csv OTP_UFSC_20120530000000_faf.csv... (7 Replies)
Discussion started by: aealexanderraj
7 Replies

9. UNIX for Dummies Questions & Answers

Extract Date part from the filename

Hi All, I have incoming source files abcmmyy.txt I need to extract the mmyy part from the filename and pass that to a variable . I really appreciate your quick response on this. Thanks raj (7 Replies)
Discussion started by: rajeevm
7 Replies

10. UNIX for Beginners Questions & Answers

How to extract date and time from filename?

Hi, I'm totally new in sell script and working with a shell code. I want to extract the date and time from the filenames. The filenames are different but all of them begins with WI_ SCOPE_: WI_SCOPE_DATA_CHANGE_2017-09-12_15-30-40.txt WI_SCOPE_BACK_COMPLETE_QUEUE_2017-09-12_15-31-40.txt... (5 Replies)
Discussion started by: Home
5 Replies
All times are GMT -4. The time now is 02:08 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy