Sponsored Content
Full Discussion: searching if the file exists
Top Forums Shell Programming and Scripting searching if the file exists Post 302416258 by ddreggors on Monday 26th of April 2010 02:09:39 AM
Old 04-26-2010
What is wrong with this?
Code:
$ [ -f m* ] && echo "file exists" || echo "file does not exist"
file exists
$ [ -f a* ] && echo "file exists" || echo "file does not exist"
file does not exist

I am able to check for any files using wild cards as you asked for using the -f (exists and is a file) and -e (exists).

Why do you think this does not work?

Also to add to the example masta gives:
Code:
for F in m*
do
    # Gather a list of files for use later
    FILES="${FILES} ${F}"
    # or you can simply preform actions here on each
    # individual file
done

# The variable FILES will either be empty or have a list of files you asked for
# If nothing matches m* then it is empty

echo "${FILES}" # or use the var FILES as needed.
# While '/bin/echo' exists echo is also built-in in bash and sh. 
# Since we give no path echo is overridden here.
# man bash and look under 'SHELL BUILTIN COMMANDS'

I am using 100% pure shell globs and built-ins and no external calls this way.


masta, you make good point however you do use an external invoke of "ls -l" and "strings" and you do it multiple times (1 for each file) whereas scottn only makes the call once.
The difference here is presumably meant to imply "only in your initial check for existence of the files" and that what you do "with" these files once found is another matter. We can't use built-ins for everything after all Smilie

I just meant to add that it may seem confusing to new script writers if the distinction is not made.

Code:
for FILE in a*    # Pure shell glob here but...
do 
  ls -l $FILE       # This is just as much of an external call as scottn does!
  strings $FILE
  . . .
done

I do however tend to agree with what masta means to show you, scottn has a valid working solution however we should (in my opinion) try to use the built-in functions of the shell we are in if external applications (ls in scottn's case) is not needed.

Now again this is a personal preference and scottn's method does have an advantage in one case. If the built-ins we rely on are shell specific (example: parameter expansion, let, set, unset, export, pushd, popd) then we cannot port this script in it's raw form to another shell (ie from bash to ksh/csh/sh). In this case using the external "ls" and "echo" commands means that we can use this script in any shell that can find the ls command in it's path!

Last edited by ddreggors; 04-26-2010 at 03:18 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Check File Exists and compare to previous day file script

We have data files that are ftp'd every morning to a SUN server. The file names are exactly the same except for that each has the date included in its name. I have to write script to do 2 things: STEP 1) Verify that the file arrived in morning. STEP 2) Compare the file size of the current... (3 Replies)
Discussion started by: rbknisely
3 Replies

2. Shell Programming and Scripting

Need to write a script in UNIX to find a file if another file exists

So I have a lot of Java applications on my servers all having their own folder from the applications subdirectory. Now, I need to do the following. Search all the applications subdirectories for message.jar. If the message.jar file exists, I need to search the application directory for... (1 Reply)
Discussion started by: mmdawg
1 Replies

3. Shell Programming and Scripting

File Exists

Hi, I have scenerio where i need to check 3 files whether they are of current day files and then count should not be equal to zero. how to achieve the same please let me know. Vishal (17 Replies)
Discussion started by: shady4u
17 Replies

4. Shell Programming and Scripting

Grep pattern from different file and display if it exists in the required file

Hi, I have two files say xxx.txt and yyy.txt. xxx.txt is with list of patterns within double quotes. Eg. "this is the line1" "this is the line2" The yyy.txt with lot of lines. eg: "This is a test message which contains rubbish information just to fill the page which is of no use. this is... (3 Replies)
Discussion started by: abinash
3 Replies

5. Shell Programming and Scripting

Newbie.. Find if a file exists and open, if not create the desired file..

Hey all, I'm brand new to script writing, I'm wanting to make a script that will ask for a file and then retrieve that file if it exists, and if it doesn't exist, create the file with the desired name, and I'm completely stuck.. so far.. #! bin/bash echo "Enter desired file" read "$file" if ... (5 Replies)
Discussion started by: Byrang
5 Replies

6. Shell Programming and Scripting

Script to check for the file existence, if file exists it should echo the no of modified days

Hi, I am looking for a shell script with the following. 1. It should check whether a particular file exists in a location #!/bin/sh if ; then echo "xxx.txt File Exists" else echo "File Not Found" fi 2. If file exists, it should check for the modified date and run a command... (2 Replies)
Discussion started by: karthikeyan_mac
2 Replies

7. Shell Programming and Scripting

searching a file with a specified text without using conventional file searching commands

without using conventional file searching commands like find etc, is it possible to locate a file if i just know that the file that i'm searching for contains a particular text like "Hello world" or something? (5 Replies)
Discussion started by: arindamlive
5 Replies

8. Windows & DOS: Issues & Discussions

Script that, if file exists in Samba share, moves file to Unix server

I'm looking to do pretty much what the title says. I want a script that runs, it can run on Unix or Windows, doesn't matter, and searches a Samba shares for a .txt file. If the file exists, the script will move (or possibly copy) the file from the Samba share into a directory on our Unix... (3 Replies)
Discussion started by: twcostello
3 Replies

9. Shell Programming and Scripting

File exists, but cannot be opened.How to check- whether it could be opened to read when it exists

Hi #Testing for file existence if ; then echo 'SCHOOL data is available for processing' else echo 'SCHOOL DATA IS NOT AVAILABLE FOR PROCESSING' : i wrote a script, where it begins by checking if file exists or not. If it exists, it truncates the database... (2 Replies)
Discussion started by: rxg
2 Replies

10. Shell Programming and Scripting

Search if file exists for a file pattern stored in array

Hi experts, I have two arrays one has the file paths to be searched in , and the other has the files to be serached.For eg searchfile.dat will have abc303 xyz123 i have to search for files that could be abc303*.dat or for that matter any extension . abc303*.dat.gz The following code... (2 Replies)
Discussion started by: 100bees
2 Replies
LOOKBIB(1)						      General Commands Manual							LOOKBIB(1)

NAME
lookbib - search bibliographic databases SYNOPSIS
lookbib [ -v ] [ -istring ] [ -tn ] filename... It is possible to have whitespace between a command line option and its parameter. DESCRIPTION
lookbib prints a prompt on the standard error (unless the standard input is not a terminal), reads from the standard input a line contain- ing a set of keywords, searches the bibliographic databases filename... for references containing those keywords, prints any references found on the standard output, and repeats this process until the end of input. For each database filename to be searched, if an index filename.i created by indxbib(1) exists, then it will be searched instead; each index can cover multiple databases. OPTIONS
-v Print the version number. -istring When searching files for which no index exists, ignore the contents of fields whose names are in string. -tn Only require the first n characters of keys to be given. Initially n is 6. FILES
filename.i Index files. SEE ALSO
refer(1), lkbib(1), indxbib(1) Groff Version 1.18.1 27 June 2001 LOOKBIB(1)
All times are GMT -4. The time now is 11:17 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy