我想编写一个 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
我完全不知道如何在 bash 中不使用 find 或 grep -r (但我可以使用 grep/ sed/ awk )的情况下实现这一目标...请帮助...
非常感谢!!
答案1
shopt -s globstar
awk '/search-string/ { print FILENAME ":" NR }' **/*
globstar
启用递归通配符。NR
保存当前行号。