Я написал код для рекурсивного поиска слова в файловой системе и во всех ее подкаталогах. Хотя он работает по большей части, у него возникают проблемы с поиском папок, которые содержат пробелы, например, он найдет искомое слово в каталоге «Bash_Exercises», но не «Bash Exercises». Я знаю, что из курсов, которые я изучил в Bash, это как-то связано с использованием "" для распознавания всей строки, но независимо от того, где я поставил "", я не могу искать папки, в которых есть пробелы. во имя Я подумал, что упускаю из виду что-то такое маленькое, и просто хотел вторую пару глаз.
#! /bin/bash
# Navigate to the home directory
cd /Users/michael/desktop
# Ask for word to search
read -p "What word would you like to search for? " word
echo ""
#Find all directories
for i in $(find . -type d)
do
#In each directory execute the following
#In each directory run a loop on all contents
for myfile in "$i"/* ;
do
#If myfile is a file, not a directory or a shell script, echo the file name and line number
if [[ -f "$myfile" ]]; then
#Store grep within the varible check
check=$(grep -ni "$word" "$myfile")
#Use an if to see if the variable "check" is empty, indicating the search word was not found
if [[ -n $check ]]; then
#If check is not empty, echo the folder location, the file name within the folder, and the line where the text shows up
echo "File location: $myfile"
echo "$check"
echo ""
echo "------------------------"
echo ""
fi
fi
done
done
Так же, как система координат, я очень новичок в Bash, все самоучки через онлайн-курсы , который может только так помочь, пока вы не попадаете в примеры, не связанные с курсом. Я ценю любую помощь.