Extracting Date from string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extracting Date from string
# 1  
Old 08-27-2009
Extracting Date from string

Hi Gurus
I want to extract a date and version code which shall come in filename consisting of underscores.
The filename can contain any / one underscores but the version number will come after date and will be separted by underscore
String formats
=============
ABC_20090815_2.csv
ABC_DEF_20090815_2.csv
ABC_DEF_GH_20090815_2.csv
ABC_DEF_G_I_20090815_2.csv
ABC_DEF_M_N_O_P_20090815_2.csv

In each case i want to extract
date -- 20090815 and
version number -- 2
# 2  
Old 08-27-2009
Try

Code:
$ echo ABC_DEF_M_N_O_P_20090815_2.csv | awk -F '[_\.]' '{ print "date: ",$(NF-2), "\nversion: ",$(NF-1) }'

# 3  
Old 08-27-2009
sed version :

Code:
sed 's/.*_\(.*\)_\(.*\).csv/\1 "version" \2/' file_names_file

# 4  
Old 08-27-2009
Quote:
Originally Posted by r_t_1601
Hi Gurus
I want to extract a date and version code which shall come in filename consisting of underscores.
The filename can contain any / one underscores but the version number will come after date and will be separted by underscore
String formats
=============
ABC_20090815_2.csv
ABC_DEF_20090815_2.csv
ABC_DEF_GH_20090815_2.csv
ABC_DEF_G_I_20090815_2.csv
ABC_DEF_M_N_O_P_20090815_2.csv

In each case i want to extract
date -- 20090815 and
version number -- 2

There's no need for any external command. Use the shell:

Code:
IFS=_.
for file in *.csv
do
  set -- $file
  shift $(( $# - 3 ))
  echo "date=$1"
  echo "version=$2"
done

# 5  
Old 08-27-2009
Thanks for all your replies .. just one more scenario ..

The file name can end without .csv as well

ABC_20090815_2
ABC_DEF_20090815_2
ABC_DEF_GH_20090815_2
ABC_DEF_G_I_20090815_2
ABC_DEF_M_N_O_P_20090815_2

still how to extract date and version

Thanks much
# 6  
Old 08-27-2009
Should be suffice
Code:
while read file
do
echo "$file Date and Ver: `echo $file | grep -o '[0-9]\{8\}_[0-9]'`"
done < file

just play with the code for formatting
# 7  
Old 08-27-2009
Hey, just modify panyam's command a bit and it's done:
Code:
sed 's/.*_\(.*\)_\(.*\)/\1 version \2/' yourfile


Last edited by thanhdat; 08-27-2009 at 06:23 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extracting substring within string between 2 token within the string

Hello. First best wishes for everybody. here is the input file ("$INPUT1") contents : BASH_FUNC_message_begin_script%%=() { local -a L_ARRAY; BASH_FUNC_message_debug%%=() { local -a L_ARRAY; BASH_FUNC_message_end_script%%=() { local -a L_ARRAY; BASH_FUNC_message_error%%=() { local... (3 Replies)
Discussion started by: jcdole
3 Replies

2. Homework & Coursework Questions

extracting date from log file

You are given a 1 year logfile with each line starting with a date in the form “YYYY-MM-DD”. How would you extract logs from the 4th day of each month and put them into a new file (1 Reply)
Discussion started by: DOkuwa
1 Replies

3. Shell Programming and Scripting

Extracting data from two date entries

Hi again: I have this file: "2010-11-1 11:50:00",40894,13.38,17.24,12.92,13.23,"2010-11-14 11:43:02",12.56,"2010-11-14 11:46:02",22.68,20.95,"2010-11-14 11:44:03",2.144,2.078,190.4,14.27,6.293,"2010-11-14 ... (2 Replies)
Discussion started by: iga3725
2 Replies

4. Homework & Coursework Questions

Date comparison with 'string date having slashes and time zone' in Bash only

1. The problem statement, all variables and given/known data: I have standard web server log file. It contains different columns (like IP address, request result code, request type etc) including a date column with the format . I have developed a log analysis command line utility that displays... (1 Reply)
Discussion started by: TariqYousaf
1 Replies

5. UNIX for Dummies Questions & Answers

extracting date from a filename

Hi, I am a beginner in Unix so please bear with me... I have a directory which has files in format: RECF-YYYY-MM-DD-input. For example, RECF-2008-02-25-input. I need to extract the YYYYY-MM-DD substring from this filename and convert that into date and compare it with a date. How do I do that?... (7 Replies)
Discussion started by: laiko
7 Replies

6. UNIX for Dummies Questions & Answers

extracting and using date from filenames in a loop

HIya, Having a dumb day whilst writing an archive process in Shell want to extract from the filename the date and archive into tar files based on this, I don't want to use mtime as it may not be the actual file date. The files are -rw-rw---- 1 user admin 100 Aug 29 11:10... (2 Replies)
Discussion started by: badg3r
2 Replies

7. Shell Programming and Scripting

Perl: Extracting date from file name and comparing with current date

I need to extract the date part from the file name (20080221 in this ex) and compare it with the current date and delete it, if it is a past date. $file = exp_ABCD4_T-2584780_upto_20080221.dmp.Z really appreciate any help. thanks mkneni (4 Replies)
Discussion started by: MKNENI
4 Replies

8. Shell Programming and Scripting

Extracting a string from one file and searching the same string in other files

Hi, Need to extract a string from one file and search the same in other files. Ex: I have file1 of hundred lines with no delimiters not even space. I have 3 more files. I should get 1 to 10 characters say substring from each line of file1 and search that string in rest of the files and get... (1 Reply)
Discussion started by: mohancrr
1 Replies

9. Shell Programming and Scripting

Extracting date-time from file.

I have the following file and need to extract date and time part for each record. Pl. could anyone provide an shell script which could be used to do it. Here is the file: /rgrdev/pdsud2/unx/agc/src/agcmst: /rgrsrc/pdspms/unx/agc/src/s.agcmst.for agcmst.for 420.20 8/4/07 18:30:53 ... (7 Replies)
Discussion started by: skumar11
7 Replies

10. UNIX for Dummies Questions & Answers

extracting files using date in ksh

Hi All., 1 ssssss C2052EX 15 Mar 30 19:01 1 aaaaa C2052EX 15 Apr 3 10:12 1 ccccc C2052EX 15 Apr 4 09:28 i have files arriving like above. i am using the following to extract files arriving today ( say apr4) todaydat=`date | cut -c5-10` find... (1 Reply)
Discussion started by: pavan_test
1 Replies
Login or Register to Ask a Question