indication of find activity - bash script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting indication of find activity - bash script
# 15  
Old 07-29-2010
The solution for one by one feed of while loop is

Code:
# Open the file
echo -n "" > testPaths.log
echo -n "Searching"
# exec to feed pipe one by one
find ./../../../40_Implementation_test -type f -name Makefile -print -exec echo -n "" \; | while read path
do
    echo -n "."
    echo $path >> testPaths.log
done
echo ""

Thanks all for your help!
# 16  
Old 07-29-2010
Sorry "vercsab" but the script just posted does not work because ${path} does not receive the filename from the find. The superfluous "-exec" parameters wreck the function of the script.
When dealing with unknown filenames in a script, always put them in double quotes.
(No comment about using complex relative paths because I guess that this was a quick test not a production script).
Hint: Using ${path} to contain a filename not a path obfuscates your code.

Code:
# Create an empty file
> testPaths.log
echo -n "Searching"
find ./../../../40_Implementation_test -type f -name Makefile -print | while read path
do
    echo -n "."
    echo "${path}" >> testPaths.log
done
echo ""



Footnote: I really think you need to read-up about pipelines. The "pipe" character "|" is not a sequential command separator in unix shell scripting (but the semi-colon character ";" is). The pipe characer "|" signifies that the output to STDOUT from the first command is to be fed directly into the input STDIN in the second command.

Last edited by methyl; 07-29-2010 at 09:46 PM..
# 17  
Old 08-03-2010
At my side code:

Code:
echo -n "" > testPaths.log
echo "Searching"
start=$(date +%s)
# exec to feed pipe one by one
find . -type f -name Makefile -print -exec echo -n "" \; | while read path
do
    echo "${path}" >> testPaths.log
    end=$(date +%s)
    diff=`expr $end - $start`
    echo "$path found in $diff seconds"
    start=$(date +%s)
done
# Output a linefeed 
echo ""
echo "Finished"

produced the output:
Quote:
Searching
path1/Makefile found in 4 seconds
path2/Makefile found in 11 seconds

Finished
and code:
Code:
echo -n "" > testPaths.log
echo "Searching"
start=$(date +%s)
# exec to feed pipe one by one
find . -type f -name Makefile -print | while read path
do
    echo "${path}" >> testPaths.log
    end=$(date +%s)
    diff=`expr $end - $start`
    echo "$path found in $diff seconds"
    start=$(date +%s)
done
# Output a linefeed 
echo ""
echo "Finished"

produced the output:

Quote:
Searching
path1/Makefile found in 82 seconds
path2/Makefile found in 0 seconds

Finished
Even if I
Quote:
I really think I need to read-up about pipelines.
would you be so kind to explain why solution2 (preferred by you) is better for this issue? Thanks.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Find Memory and activity from command output

Hello - I have a requirement to get the Memory(Xmx) and the activity name using it. Sample input info : 1502 02:57 /bin/sh /opt/rather/bar/deploy/bar_run.sh 1545 02:57 java -Drather.repository=/opt/rather/bar/deploy/JobSyng_Barol_Count/JobSyng_Barol_Count/../lib -Xms1024M... (3 Replies)
Discussion started by: Varja
3 Replies

2. Programming

Bash script - find command with delete and exec

hi all, i have devised a script that starts in /restored/ and in there, there are a lot of sub folders called peoples names and in the sub folders are files/folders and it deletes the data in the sub folders BUT not the sub folder itself and it should then touch a file in all the sub folders... (3 Replies)
Discussion started by: robertkwild
3 Replies

3. Shell Programming and Scripting

Bash script to find comments in file

As I stated in a previous thread - I'm a newbie to Unix/Linux and programming. I'm trying to learn the basics on my own using a couple books and the exercises provided inside. I've reached an exercise that has me stumped. I need to write a bash script that will will read in a file and print the... (11 Replies)
Discussion started by: ksmarine1980
11 Replies

4. Shell Programming and Scripting

BASH script problem using find, ideas?

Hi, I'm trying to write a script to search through my computer and find all .jpg files and put them all in a directory. So far I have this: for i in `find /home -name '*.jpg' ` ; do mv $i home/allen/Pictures/PicturesFound ; done When I run it, I get this error (this is only part of it, it... (2 Replies)
Discussion started by: FortressPTH
2 Replies

5. Shell Programming and Scripting

Find associated strings in a bash shell script

Hi together, unfortunately I am not a shell script guru - the following might touch the depths of awk, substr, split, regexps, where I am still fighting with - but as always the boss needs a fast solution :-( So: I have the following USER/PASSWORD-installation-config-file, from where I want to... (10 Replies)
Discussion started by: Sofie
10 Replies

6. Shell Programming and Scripting

Bash Script to Find the status of URL

#!/bin/bash timevar=`date +%d-%m-%Y_%H.%M.%S` #-- > Storing Date and Time in a Variable get_contents=`cat urls.txt` #-- > Getting content of website from file. Note the file should not contain any http:// as its already been taken care of echo "Datae-time URL Status code Report" >... (2 Replies)
Discussion started by: anishkumarv
2 Replies

7. Programming

Bash Script to Find the status of URL

#!/bin/bash timevar=`date +%F_”%H_%M”` #-- > Storing Date and Time in a Variable get_contents=`cat urls.txt` #-- > Getting content of website from file. Note the file should not contain any http:// as its already been taken care of ######### Next Section Does all the processing ######### for i... (0 Replies)
Discussion started by: anishkumarv
0 Replies

8. Shell Programming and Scripting

Find out the day in Bash Shell script

Hello All, I need a bash shell script to find out a day from the date.For example we give the date(20100227/YYYYMMDD) then we get the day 'Saturday'. Thanks in advance, Satheesh (5 Replies)
Discussion started by: satheesh4093
5 Replies

9. Shell Programming and Scripting

Bash script (using find and grep)

I'm trying to make a simple search script but cannot get it right. The script should search for keywords inside files. Then return the file paths in a variable. (Each file path separated with \n). #!/bin/bash SEARCHQUERY="searchword1 searchword2 searchword3"; for WORD in $SEARCHQUERY do ... (6 Replies)
Discussion started by: limmer
6 Replies
Login or Register to Ask a Question