次のように入力すると、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
現在の行番号を保存します。