从find -name Shell Script的结果中删除路径

时间:2017-03-03 13:49:25

标签: linux bash shell

我目前正在尝试编写一个脚本,该脚本通过给定目录查找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 包含以下单词:单词列表(静态,如果未签名)

如果可能的话,我正试图在最短的时间内使用管道。

提前感谢您的回答。

0 个答案:

没有答案