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現在の行番号を保存します。

関連情報