I am working on to search a string on files using grep in a directory(in for loop)
for file in .* *; do
if [[ -f "$file" && `grep -r "$pattern" "$file"` ]]; then
path=`pwd`/"$file"
echo "$path"
fi
done
I am working on to search a string on files using grep in a directory(in for loop)
for file in .* *; do
if [[ -f "$file" && `grep -r "$pattern" "$file"` ]]; then
path=`pwd`/"$file"
echo "$path"
fi
done
Avoid the for loop and use something like
grep -l "${pattern}" ${PWD}/.* ${PWD}/*
or better
find ${PWD} -type f -exec grep -l "${pattern}" {} +
Use find command . To search in current folder
find . -exec grep "$pattern" {} \; -print'
To search in specific folder
find /home/hduser -exec grep "$pattern" {} \; -print'