Reputation: 355
I need to run the following command with a for loop
cat Locate\ Message.eml | ./locatePipe.php
I am trying the following however it seems to break on the first space in the file name
for i in $(find -name "*.eml"); do cat $i | ./locatePipe.php; done
Some of the file names contain "@", "()", "-", ".", "[]", " ' " if that matters
Upvotes: 0
Views: 2162
Reputation: 355
I accomplished this using the following command
find -name '*.eml' | while read email; do cat "$email" | ./locatePipe.php; done
Upvotes: 1
Reputation: 531075
If you're using bash
4, just skip using find
:
shopt -s globstar
for i in **/*.eml; do
cat "$i"
done | ./locatePipe.php
Upvotes: 0
Reputation: 241848
Use the -exec
option
find -name '*.eml' -exec cat {} + | ./locatePipe.php
Upvotes: 1