อัปเดต 2:
บรรทัดคำสั่งนี้ใช้find
และgrep
แก้ไขปัญหา:
$ find path_to_search_in -type f -exec grep -in searchString {} 2> /dev/null +
--color=<always or auto>
สำหรับการแสดงผลสี:
$ find path_to_search_in -type f \
-exec grep --color=always -in searchString {} 2>/dev/null +
ตัวอย่าง:
$ find /tmp/test/ -type f -exec grep --color=auto -in "Search string" {} 2>/dev/null +
ตัวอย่างการทำงานในภาพรวมด้านล่าง:
อัปเดต 1:
คุณสามารถลองรหัสต่อไปนี้; เป็นฟังก์ชั่นในของคุณ.bashrc
หรือ.bash_aliases
หรือในสคริปต์:
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
}
การใช้งาน: wherein /path/to/search/in/ searchkeyword
ตัวอย่าง:
$ wherein ~/Documents/ "hello world"
(หมายเหตุ: ตามที่แนะนำในความคิดเห็นด้านล่างโดย @enzotib สิ่งนี้จะไม่ทำงานกับไฟล์ / ไดเรกทอรีรวมถึงช่องว่างในชื่อ)
โพสต์ต้นฉบับ
ในการค้นหาสตริงและเอาต์พุตเพียงบรรทัดนั้นด้วยสตริงการค้นหา:
$ for i in $(find /path/of/target/directory -type f); do \
grep -i "the string to look for" "$i"; done
เช่น:
$ for i in $(find /usr/share/applications -type f); \
do grep -i "web browser" "$i"; done
ในการแสดงชื่อไฟล์ที่มีสตริงการค้นหา:
$ 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;
เช่น:
$ for i in $(find /usr/share/applications -type f); \
do if grep -i "web browser" "$i" > /dev/null; then echo "$i"; \
fi; done;