Parsing question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parsing question
# 1  
Old 05-13-2008
MySQL Parsing question

Hi Guys,

I was wondering if you could help me out -

I have a directory /home/users/datafiles/ which contain files "dat dd-mm-yy.xls"

I am trying to write a script which does the following -

(1) loops through all the files
(2) retrieves the dd-mm-yy string and converts it into a yyyymmdd to be stored as a variable


for xlsFile in dat*.xls
do
##scripting

echo $xlsDate
echo $formattedDate
echo $xlsFile
done

E.g. If I had file "dat 10-01-08.xls", these 3 would be the result -

10-01-08
20080110
dat 10-01-08.xls


Thanks in advance,
# 2  
Old 05-13-2008
Just re-bouncing this post. I would appreciate any help.
# 3  
Old 05-13-2008
Please, don't rebounce your threads.

For your question, try something like this:

Code:
for xlsFile in dat*.xls
do
   d=${x:4:2}
   m=${x:7:2}
   y=${x:10:2}

   xlsDate="$d-$m-$y"
   formattedDate="20$y$m$d"

   echo $xlsDate
   echo $formattedDate
   echo $xlsFile
done

Obviously if $y is greater than a certain (imposed) value you need to add an if statement and use "19" instead of "20" in the formattedDate expression.
# 4  
Old 05-13-2008
Code:
for file in "$(echo dat*)"
do
   xlsdate=$(echo $i | awk '{split($2,a,"\.xls");print a[1]}')
   fmtdate=$(echo $xlsdate | awk -F"-" '{for(i=NF;i>=1;i--) s=s""$i;print "20"s}')
   echo $xlsdate
   echo $fmtdate
   echo $file
done

# 5  
Old 05-13-2008
Quote:
Originally Posted by robotronic
Please, don't rebounce your threads.

For your question, try something like this:

Code:
for xlsFile in dat*.xls
do
   d=${x:4:2}
   m=${x:7:2}
   y=${x:10:2}

   xlsDate="$d-$m-$y"
   formattedDate="20$y$m$d"

   echo $xlsDate
   echo $formattedDate
   echo $xlsFile
done

Obviously if $y is greater than a certain (imposed) value you need to add an if statement and use "19" instead of "20" in the formattedDate expression.
Thanks but this errors on the first line after 'do', stating bad substitution.
# 6  
Old 05-13-2008
Quote:
Originally Posted by shamrock
Code:
for file in "$(echo dat*)"
do
   xlsdate=$(echo $i | awk '{split($2,a,"\.xls");print a[1]}')
   fmtdate=$(echo $xlsdate | awk -F"-" '{for(i=NF;i>=1;i--) s=s""$i;print "20"s}')
   echo $xlsdate
   echo $fmtdate
   echo $file
done

Thanks for this code just prints a "20" and every file name on the same line.
# 7  
Old 05-13-2008
Uh! I wrote "x" variable instead of "xlsFile" Smilie

Code:
for xlsFile in dat*.xls
do
   d=${xlsFile:4:2}
   m=${xlsFile:7:2}
   y=${xlsFile:10:2}

   xlsDate="$d-$m-$y"
   formattedDate="20$y$m$d"

   echo $xlsDate
   echo $formattedDate
   echo $xlsFile
done

Also, this works only with bash. You didn't specified which shell are you using. If not using bash, you may extract the same values through "cut" commands or something similar.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Another parsing question (awk)

Input File Name of the session: filesrv_quo snap Logical Units UID: 60:06:01:60:01:7B:25:00:C8:86:B0:CA:5B:A2:E0:11 Name of the session: verspn2_at_176_0218 snap Logical Units UID: Name of the session: DRT-ny-iadsql1-c_ny-iadsql2-c snap Logical Units UID: ... (4 Replies)
Discussion started by: greycells
4 Replies

2. UNIX for Dummies Questions & Answers

Noob question about parsing a website

I'm trying to parse the website, finance.yahoo.com/q?s=ge&ql=1, and retrieve the info between <span id="yfs_l84_ge">18.98</span>, so 18.98. What would be the best way to go about this in a bash script? Any help or suggestions will be much appreciated. Thanks! (2 Replies)
Discussion started by: mayson
2 Replies

3. Shell Programming and Scripting

another parsing question

Input File Information about each HBA: HBA UID: 20:00:00:00:C9:9A:62:88:10:00:00:00:C9:9A:62:88 Server Name: 20:00:00:00:C9:9A:62:88:10:00:00:00:C9:9A:62:88 Server IP Address: UNKNOWN HBA Model Description: HBA Vendor Description: HBA Device Driver... (2 Replies)
Discussion started by: greycells
2 Replies

4. Shell Programming and Scripting

Question about argument parsing in scripts

Hello all, I am relatively new to linux and bash scripting. I have what seems to be a simple question but I'm having trouble finding the answer. The question is what is the difference between the variables $@ and $*. I've seen them both used in the same context, and I've tried a number of... (4 Replies)
Discussion started by: nicthu
4 Replies

5. Shell Programming and Scripting

Question about reading and parsing text file

Hello, I'm just getting started with BASH programming. I would like to write a script to solve a file renaming problem I have. I received a directory containing a collection (>2000) of files whose names are in DOS 8.3 format, and woild like to rename the filenames to a longer and more... (8 Replies)
Discussion started by: polomora
8 Replies

6. Shell Programming and Scripting

Perl parsing question

I need some help loading an array. I have two unique delimiters, but I keep running into recursion. #!/usr/bin/perl $INFILE="/root/scripts/data.txt"; $pat1="SCRIPT####"; $pat2="SCRIPT#echo"; $flag=0; $inc=0; $chunk=""; open(INFILE,"<$INFILE")|| die; while(<INFILE>) { if... (2 Replies)
Discussion started by: s_becker
2 Replies

7. Shell Programming and Scripting

Question about Awk for Data Parsing

Hi, I am doing some data parsing for some economics research. I was recently exposed to shell script and am brand new to awk. I have a large csv file (like 10G) and I would like to make it a lot smaller with awk, but it is a bit tricky for me and I haven't been able to get it yet. I would... (5 Replies)
Discussion started by: EconResearch
5 Replies

8. Shell Programming and Scripting

Parsing of file for Report Generation (String parsing and splitting)

Hey guys, I have this file generated by me... i want to create some HTML output from it. The problem is that i am really confused about how do I go about reading the file. The file is in the following format: TID1 Name1 ATime=xx AResult=yyy AExpected=yyy BTime=xx BResult=yyy... (8 Replies)
Discussion started by: umar.shaikh
8 Replies

9. Shell Programming and Scripting

Parsing question.

Hi There, First time poster here. I've got a parsing question and have a solution but am sure there is a much better way of doing this with just awk. My knowledge of awk is pretty limited so hope someone out there can give me a better solution. Here's the problem, I'm receiving a file from a... (2 Replies)
Discussion started by: little_happosai
2 Replies

10. UNIX for Dummies Questions & Answers

Text parsing question

How would I split a file based on the location of a string, basically I want all entries above the string unix in this example 1 2 3 4 unix 5 6 7 Thanks, Chuck (3 Replies)
Discussion started by: 98_1LE
3 Replies
Login or Register to Ask a Question