Güncelleme 2:
Bu komut satırı sorunu kullanarak find
ve grep
düzeltir:
$ find path_to_search_in -type f -exec grep -in searchString {} 2> /dev/null +
--color=<always or auto>
renkli çıktı için:
$ find path_to_search_in -type f \
-exec grep --color=always -in searchString {} 2>/dev/null +
Örnek:
$ find /tmp/test/ -type f -exec grep --color=auto -in "Search string" {} 2>/dev/null +
Aşağıdaki anlık görüntüde bir örnek çalışması:
Güncelleme 1:
Aşağıdaki kodu deneyebilirsiniz; sizin .bashrc
veya .bash_aliases
bir komut dosyasındaki bir işlev olarak :
wherein ()
{
for i in $(find "$1" -type f 2> /dev/null);
do
if grep --color=auto -i "$2" "$i" 2> /dev/null; then
echo -e "\033[0;32mFound in: $i \033[0m\n";
fi;
done
}
Kullanımı: wherein /path/to/search/in/ searchkeyword
örnek:
$ wherein ~/Documents/ "hello world"
(Not: Aşağıdaki yorumlarda @enzotib tarafından önerildiği gibi, bu, adlarındaki boşlukları içeren dosya / dizinlerle çalışmaz.)
Orijinal yayın
Dizeyi aramak ve arama dizesiyle sadece bu satırın çıktısını almak için:
$ for i in $(find /path/of/target/directory -type f); do \
grep -i "the string to look for" "$i"; done
Örneğin:
$ for i in $(find /usr/share/applications -type f); \
do grep -i "web browser" "$i"; done
Arama dizesini içeren dosya adını görüntülemek için:
$ for i in $(find /path/of/target/directory -type f); do \
if grep -i "the string to look for" "$i" > /dev/null; then echo "$i"; fi; done;
Örneğin:
$ for i in $(find /usr/share/applications -type f); \
do if grep -i "web browser" "$i" > /dev/null; then echo "$i"; \
fi; done;