Checking if file exists and unzipping


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Checking if file exists and unzipping
# 1  
Old 11-19-2012
Checking if file exists and unzipping

Hey, I am new to scripting and was wondering what is wrong with this if statement. I want to check if file exists and the if it does to unzip it. I program it as follows

Code:
if [ -e *_filename.gz ]; then
gunzip *_filename.gz 
fi

Thanks in advance!

Moderator's Comments:
Mod Comment Please use code tags next time for your code and data.

Last edited by joeyg; 11-19-2012 at 11:41 AM.. Reason: corrected spelling
# 2  
Old 11-19-2012
Try -f instead:-
Code:
if [ -f *_filename.gz ]; then

# 3  
Old 11-19-2012
The -f option does not work either! Smilie
# 4  
Old 11-19-2012
Works for me:-
Code:
# ls -l
-rwxr-xr-x   1 user    group         157 Nov 19 09:10 test1.gz
-rw-r--r--   1 user    group          39 Nov 19 10:39 test2.gz

# if [ -f *test*.gz ]
> then
>    echo Yes
> else
>    echo No
> fi
Yes

Code:
# rm -f *.gz
# if [ -f *test*.gz ]
> then
>    echo Yes
> else
>    echo No
> fi
No

What is your OS / Platform?
# 5  
Old 11-19-2012
This will fail in many systems because -f will get confused when given more than one argument.

I'd use a for-loop instead, breaking so it only runs once. Or not, if you want to run it over all files...

Code:
for FILE in *.gz
do
        if ! [ -f "$FILE" ] 
        then
                echo "No gz files"
       fi
       echo "$FILE exists"
       break
done


Last edited by Corona688; 11-19-2012 at 01:04 PM..
This User Gave Thanks to Corona688 For This Post:
# 6  
Old 11-19-2012
Or you can use ls to check:-
Code:
if [ $( ls -l *_filename.gz 2> /dev/null | wc -l ) -ne 0 ]
then
      gunzip *_filename.gz
fi

# 7  
Old 11-19-2012
That is a useless use of ls *, running ls here is redundant. It will also cause error message spam when no files are present.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Code for checking if certain no of files exists

Hi, I am writing the shell script in ksh to check certain no of files exists,In my case there are 7 files exist like below Sales1_timstamp.csv Sales2_timstamp.csv Sales3_timstamp.csv Sales4_timstamp.csv Sales5_timstamp.csv Sales7_timstamp.csv Sales7_timstamp.csv Once all the files... (4 Replies)
Discussion started by: SRPR
4 Replies

2. Shell Programming and Scripting

For loop without checking file exists

In several scripts that process files matched by name pattern I needed to add a check for file existence. Just to illustrate let's say I need to process all N??? files: /tmp$ touch N100 N101 /tmp$ l ?10 -rw-rw-r-- 1 moss group 0 Apr 19 11:22 N100 -rw-rw-r-- 1 moss group ... (10 Replies)
Discussion started by: migurus
10 Replies

3. Shell Programming and Scripting

Problem with ssh and checking if file exists

Hi All, I am facing a problem while checking for existence of file over ssh ! Basically, i want to ssh and check if file exists.. If file exists return 1. If file does not exits return 0 (or any value) I am using the below code file_avail=`ssh username@host "if ]; then exit 1;... (10 Replies)
Discussion started by: galaxy_rocky
10 Replies

4. Shell Programming and Scripting

Checking whether the file exists under a directory and doing a diff

Hi Everyone, I am writing a shell script for the below needs and would like your suggestions and advices. I have a lot of scripting files(Shell Scripts) under the directory: /home/risk_dev/dev I have another directory which has a lot of shell scripts under the directory: ... (2 Replies)
Discussion started by: filter
2 Replies

5. Shell Programming and Scripting

what is the difference between -f and -e, when checking for file exists

Hi All, what is the difference between -f and -e. Regards, ch33ry (1 Reply)
Discussion started by: ch33ry
1 Replies

6. Shell Programming and Scripting

Checking if file exists

How can I check if a file exists in csh? I know there is "-e $file" but do not know exactly how to use it. I have tried the below but I'm getting "Bad : modifier in $ ( )." foreach f ($AfullnameLst) if (-e $f) then echo "$f: file exists" endif end (6 Replies)
Discussion started by: kristinu
6 Replies

7. Shell Programming and Scripting

Checking if file exists using a NOT operator and shell variable

Hi, I'm new to UNIX, at least shell programming and am having trouble figuring out a problem i'm having. In one section in my nested if statement, i want the program to test if the file does not exist, based on an argument supplied at the command line by the user. What i have is elif ; then... (3 Replies)
Discussion started by: rowlf
3 Replies

8. Shell Programming and Scripting

Checking if a file exists

How can I check if a file exists in shell script. Basically, I want to check if a file Test_msgs has been created today. If it has been then append data to it. Otherwise, create it. I have written the following but it does not work. todaysdate=$(date +%d%m%Y) timenow=$(date +%H%M%S)... (4 Replies)
Discussion started by: gugs
4 Replies

9. Shell Programming and Scripting

Checking the file if it exists

Hi This will be useful who is looking for checking the files in a directory #chmod 777 /cronacle/tools/teradata/opo/bin/file_check.sh SUBJECT=`echo "File Not Found"` SUBJECT1=`echo "File Found"` #RECIPIENT=Madhu.Reddy@ge.com cd /cronacle/tools/teradata/opo/bin file_list=attach.sh if ... (3 Replies)
Discussion started by: ksmbabu
3 Replies

10. IP Networking

checking a connection still exists?

Hi I have a bit of c code which I'm trying to use as a relay between apache and a scgi cluster. Example of problem code is below: while((n = recv(scgiSock, local_data, MAX_LENGTH, 0)) > 0) { time(&t2); time_now = t2 - t1; if(time_now > TIMEOUT) ... (2 Replies)
Discussion started by: fishman2001
2 Replies
Login or Register to Ask a Question