find 또는 grep -r을 사용하지 않고 bash만 사용하여 파일 내용을 grep하는 방법은 무엇입니까? [폐쇄]

find 또는 grep -r을 사용하지 않고 bash만 사용하여 파일 내용을 grep하는 방법은 무엇입니까? [폐쇄]

다음을 입력하면 bash 프로그램을 작성하고 싶습니다.

-bash-4.1$ ./sample.sh path regex keyword

결과는 비슷합니다.

path/sample.txt:12

path/sample.txt:34

path/dir/sample1.txt:56

path/dir/sample2.txt:78

find 또는 grep -r을 사용하지 않고 bash에서 이것을 달성하는 방법을 전혀 모릅니다(그러나 grep/sed/awk를 사용할 수 있습니다)... 도와주세요...

매우 감사합니다! !

답변1

shopt -s globstar
awk '/search-string/ { print FILENAME ":" NR }' **/*

globstar재귀적 와일드카드를 활성화합니다. NR현재 줄 번호를 저장합니다.

관련 정보