1,105,546 Community Members

Using find in a bash shell script

Member Avatar
iparkin
Newbie Poster
11 posts since Dec 2004
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

I recently ran the following command from the command line and it worked
find . -name '*jrAPS*_ouput.log' -exec grep '<string expression>' {}\; -print

I put it in a shell script like this and it did not work
find . -name \'*jrAPS*_output.log\' -exec grep \'<string expression>\' {} \\\; -print

the result was find: incomplete statement why?

Member Avatar
coca-light
Newbie Poster
2 posts since Dec 2004
Reputation Points: 0 [?]
Q&As Helped to Solve: 1 [?]
Skill Endorsements: 0 [?]
 
0
 

On my system, I don't need to perform all the escaping that you are doing. The same command that I use on the command line works in the shell script because nothing is interpreting the command before executing it. However, if you have another shell reading commands from this script and executing them, then you would need the escapes. If that doesn't help use bash -n $0 where $0 is your current command line to see if you have syntax errors before running. Sometimes the error messages are slightly different (or more of them) when just analyzing.

Member Avatar
iparkin
Newbie Poster
11 posts since Dec 2004
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

Thanks I will do that do you know any Linux servers I can get access to on the net to try this.?

Member Avatar
coca-light
Newbie Poster
2 posts since Dec 2004
Reputation Points: 0 [?]
Q&As Helped to Solve: 1 [?]
Skill Endorsements: 0 [?]
 
0
 

Sorry, I don't know of any public Linux Servers.
If you need an easy install try Xandros Open Edition. You answer 5 or 10 questions, wait about 30 minutes and voila instant Linux - with sound and networking. http://www.xandros.com

Member Avatar
Dani
The Queen of DaniWeb
20,566 posts since Feb 2002
Reputation Points: 1,356 [?]
Q&As Helped to Solve: 931 [?]
Skill Endorsements: 204 [?]
Administrator
Featured
Sponsor
 
0
 
Member Avatar
iparkin
Newbie Poster
11 posts since Dec 2004
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

Thanks I will check out these sites

Member Avatar
iparkin
Newbie Poster
11 posts since Dec 2004
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

Here is the shell script I am trying to run in bash

if [ $# -neq 1 ];
then
echo "Usage: <program name> <string expression>"
exit 1
fi

findstr=$1
echo "$findstr"

find . -name 'm1_jrAPS*_output.log' -exec grep \'"$findstr"\' {} \; -print


In the above script I want to take the string from the command line and put it in the find command in the shell script I have a hard time getting the shell to expand it in single quotes like in the regular command

Question Answered as of 9 Years Ago by coca-light and Dani
Member Avatar
iparkin
Newbie Poster
11 posts since Dec 2004
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

I found an easier solution using command substitution and looping.

Member Avatar
edup_pt
Newbie Poster
16 posts since Jul 2010
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

Hi,
Im having a similar problem here.
Im trying to make a script:

#/bin/bash
teste="{33,351}";
ls -laht /tmp/interface*_${teste}_*.xml

but it gives an error. If i change ${teste} for the static value itself it works.

Any idea? I've tried to evaluate with the $() but it doesnt work.

Thanks

Member Avatar
borlam
Newbie Poster
1 post since Feb 2012
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

find . -name \'*jrAPS*_output.log\'|xargs egrep "a regular expresion"

You
This question has already been solved: Start a new discussion instead
Post:
Start New Discussion
Tags Related to this Article