Checking if file exists


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Checking if file exists
# 1  
Old 04-27-2011
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 $ ( )."

Code:
foreach f ($AfullnameLst)
  if (-e $f) then
    echo "$f: file exists"
  endif
end


Last edited by kristinu; 04-27-2011 at 12:42 PM..
# 2  
Old 04-27-2011
What is your foreach pulling there? You have to have the full file name after the -e, so if you need to append extentions or whatnot, make sure you're doing it. I put an example below.

Code:
 
foreach f ($AfullnameLst)
    if(-e datafile.$f.out)

# 3  
Old 04-27-2011
$AfullnameLst is a list of file names passed to the script as command line arguments.

---------- Post updated at 11:14 AM ---------- Previous update was at 11:11 AM ----------

I have coded like this

Code:
foreach f ($AfullnameLst)
  echo "$f"
  ls $f
  if (-e $f) then
    echo "$f: file exists"
  endif
end

and I am getting

Code:
n02-z30-sr65-rgdt0p25.xt
-rw-rw-r-- 1 chrisd prog 4719 2010-11-09 17:44 n02-z30-sr65-rgdt0p25.xt
Bad : modifier in $ ( ).

So "ls" is picking up the file.

---------- Post updated at 11:36 AM ---------- Previous update was at 11:14 AM ----------

Have tried the below, using a variable does work but when I use foreach I am getting the problem. I have checked the file names in $AfullnameLst and they are correct. I just pass one file as a test.

Code:
if (-e "n02-z30-sr65-rgdt0p25.xt") then
  echo "file exists"
else
  echo "file does not exist"
endif

set myfile = "n02-z30-sr65-rgdt0p25.xt"
if (-e $myfile) then
  echo "file exists"
else
  echo "file does not exist"
endif

echo "Check if files exist"
foreach f ($AfullnameLst)
  echo ".$f."
  ls $f
  set file = "$f"
  if (-e $file) then
    echo "$f: file exists"
  endif
end
echo "Files checked"

# 4  
Old 04-27-2011
Quote:
Have tried the below, using a variable does work but when I use foreach I am getting the problem. I have checked the file names in $AfullnameLst and they are correct. I just pass one file as a test.

Code:
 
if (-e "n02-z30-sr65-rgdt0p25.xt") then
  echo "file exists"
else
  echo "file does not exist"
endif
 
set myfile = "n02-z30-sr65-rgdt0p25.xt"
if (-e $myfile) then
  echo "file exists"
else
  echo "file does not exist"
endif
 
echo "Check if files exist"
foreach f ($AfullnameLst)
  echo ".$f."
  ls $f
  set file = "$f"
  if (-e $file) then
    echo "$f: file exists"
  endif
end
echo "Files checked"

Can you post the results from this? I was actually going to suggest hard coding the file to see if it's that command line variable.
# 5  
Old 04-27-2011
Have no idea what went wrong but the below is working. It's what I needed.

Code:
# Check if files exist
foreach f ($AfullnameLst)
  set myfile = "$f"
  if (! -e $myfile) then
    echo "\nERROR. $myfile  File does not exist\n"
    exit 1
  endif
end

# 6  
Old 04-27-2011
So strange. You know when throwing a variable into another variable and flipping a meaning fixes your script, it's a very strange language Smilie.

Glad you got it working though.
# 7  
Old 04-27-2011
Ok Ok. Doing like this also works

Code:
foreach f ($AfullnameLst)
  if (! -e $f) then
    echo "\nERROR. $f  File does not exist\n"
    exit 1
  endif
end

Got no time to find out what went wrong and try to replicate it Smilie. Will end up with the problem again that way. Smilie Thanks for help.

Last edited by kristinu; 04-27-2011 at 02:37 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. Shell Programming and Scripting

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 if ; then gunzip *_filename.gz fi Thanks in advance! Please use code tags next time for your code and data. (10 Replies)
Discussion started by: mostarac2487
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 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

7. Shell Programming and Scripting

checking textfile exists or not in all directories

Hai All, please help me in solving this assignment!!! i need a unix script that has to check the text file exists or not in all directories and sub directories if textfile exists display the directory path else display does not exists!! example: kamal.txt that i want to search if the... (5 Replies)
Discussion started by: G.K.K
5 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