我目前正在尝试编写一个脚本,该脚本通过给定目录查找txt文件中包含的单词选择。 目前代码非常简单:
dir=$1
shift
find $dir -name '*.cpp' -o -name '*.c' -o -name '*.h' | xargs grep -o -f "$@" | sort -u
我们可以通过以下方式运行它:
sh search.sh directory filename
结果如下:
/usr/src/linux-headers-3.19.0-25/scripts/sortextable.h:void
/usr/src/linux-headers-3.19.0-25/scripts/unifdef.c:continue
/usr/src/linux-headers-3.19.0-25/scripts/unifdef.c:default
/usr/src/linux-headers-3.19.0-25/scripts/unifdef.c:do
/usr/src/linux-headers-3.19.0-25/scripts/unifdef.c:for
/usr/src/linux-headers-3.19.0-25/scripts/unifdef.c:if
/usr/src/linux-headers-3.19.0-25/scripts/unifdef.c:of
/usr/src/linux-headers-3.19.0-25/scripts/unifdef.c:size
/usr/src/linux-headers-3.19.0-25/scripts/unifdef.c:static
/usr/src/linux-headers-3.19.0-25/scripts/unifdef.c:unsigned
/usr/src/linux-headers-3.19.0-25/scripts/unifdef.c:void
/usr/src/linux-headers-3.19.0-25/scripts/unifdef.c:while
现在您可以看到,对于文件中找到的每个单词,即使前一个单词位于同一文件中,也会写入绝对路径。
现在我想做的是写下这样的东西: path 包含以下单词:单词列表(静态,如果未签名)
如果可能的话,我正试图在最短的时间内使用管道。
提前感谢您的回答。