help with file name


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting help with file name
# 1  
Old 03-22-2007
help with file name

His may seem simple to many but I have no clue Smilie
Need some urgent help please

How can I make this statement evaluate to true if the actual DataFile can have an extension of either .dat or .txt

what I'm trying to say is my datafile could have a name like
ABC_20070323_xyz.dat
or
ABC_20070323_xyz.txt

now the trick is also in the if statement
These for example are now valid
ABC_20070323_xyz.dat.gz
or
ABC_20070323_xyz.dat.Z
or
ABC_20070323_xyz.txt

notice the .txt file can also have the option of no compression


ControlFileName=${ControlFile##*/};
DataFile="${SOURCE_DATA_PATH}/${ControlFileName%.*}.dat";

if [[ -f "${DataFile}" ]]; then
X=1; # Do nothing
elif [[ -f "${DataFile}.gz" ]]; then
DataFile=${DataFile}.gz;
elif [[ -f "${DataFile}.Z" ]]; then
DataFile=${DataFile}.Z;
else
Log ERROR "Could not find data file for Data File=${DataFile} [or .dat.gz or .dat.Z]";
returnStatus=1;
break;
fi;
# 2  
Old 03-22-2007
In ksh you can make patterns that will match any of those possible names, but an if statement using them would fail if more than one name matches the pattern. So you could loop through all of the names...

$ ls
xyz.txt.Z xyz.txt.gz
$ name=xyz
$ for f in ${name}.@(dat|txt)?(.gz|.Z) ; do echo $f ; done
xyz.txt.Z
xyz.txt.gz
$

Or if you don't care which file you have, maybe something like this:

$ list=$(echo ${name}.@(dat|txt)?(.gz|.Z))
$ echo $list
xyz.txt.Z xyz.txt.gz
$ onename=${list%% *}
$ echo $onename
xyz.txt.Z
$
Login or Register to Ask a Question

Previous Thread | Next Thread

3 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script (sh file) logic to compare contents of one file with another file and output to file

Shell script logic Hi I have 2 input files like with file 1 content as (file1) "BRGTEST-242" a.txt "BRGTEST-240" a.txt "BRGTEST-219" e.txt File 2 contents as fle(2) "BRGTEST-244" a.txt "BRGTEST-244" b.txt "BRGTEST-231" c.txt "BRGTEST-231" d.txt "BRGTEST-221" e.txt I want to get... (22 Replies)
Discussion started by: pottic
22 Replies

2. Shell Programming and Scripting

Compare 2 text file with 1 column in each file and write mismatch data to 3rd file

Hi, I need to compare 2 text files with around 60000 rows and 1 column. I need to compare these and write the mismatch data to 3rd file. File1 - file2 = file3 wc -l file1.txt 58112 wc -l file2.txt 55260 head -5 file1.txt 101214200123 101214700300 101250030067 101214100500... (10 Replies)
Discussion started by: Divya Nochiyil
10 Replies

3. Shell Programming and Scripting

Match list of strings in File A and compare with File B, C and write to a output file in CSV format

Hi Friends, I'm a great fan of this forum... it has helped me tone my skills in shell scripting. I have a challenge here, which I'm sure you guys would help me in achieving... File A has a list of job ids and I need to compare this with the File B (*.log) and File C (extend *.log) and copy... (6 Replies)
Discussion started by: asnandhakumar
6 Replies
Login or Register to Ask a Question