使用上一次grep的结果对多个单词进行grep

使用上一次grep的结果对多个单词进行grep,grep,pipe,Grep,Pipe,我有一大组文件,我想在其中搜索。 我想找到所有被X包围的单词,并且只找到这些单词。我使用“向后看”和“向前看”来执行此操作: grep -rhoP "(?<=X)[a-zA-Z0-9_]*(?=X)" . 但是如何将这两个命令连接在一起 更新 我有一大套C文件。 我们所有的api函数首先在一个.h文件中声明,并在一个.c文件和内联的.h文件中使用 有些函数可能不是直接访问的,而是通过函数指针访问的,但事实证明这是开发的一大障碍。为此,我们制作了一些宏(FP和CALL),以便能够轻松地打

我有一大组文件,我想在其中搜索。

我想找到所有被
X
包围的单词,并且只找到这些单词。我使用“向后看”和“向前看”来执行此操作:

grep -rhoP "(?<=X)[a-zA-Z0-9_]*(?=X)" .
但是如何将这两个命令连接在一起

更新

我有一大套C文件。 我们所有的api函数首先在一个.h文件中声明,并在一个.c文件和内联的.h文件中使用

有些函数可能不是直接访问的,而是通过函数指针访问的,但事实证明这是开发的一大障碍。为此,我们制作了一些宏(
FP
CALL
),以便能够轻松地打开和关闭此需求

FP(DoThis)
void DoThis(void);
  • 根据对的要求,
    FP
    定义了一个函数指针——在本例中是针对
    DoThis
    ——以后可以使用
    调用(DoThis)()
  • 当需求关闭时,
    FP
    被扩展为零,
    CALL(DoThis)
    被扩展为仅
    DoThis
通过以下方式可以获取以这种方式创建函数指针的所有函数的列表:

grep -rhoP "(?<=FP\()[a-zA-Z0-9_]*(?=\))" .
grep -rP "(?<=CALL\()DoThis(?=\))" .
也许是这个好先生

grep-rho'XY[a-zA-Z0-9.]*YX.。| sed's/[XY]//g'

does
grep-rhoP”(?@Kent No.第二个grep的结果可能与第一个grep的结果来自不同的文件。第二个grep确实需要再次搜索所有文件。哦,我误解了你。所以这两个grep彼此无关,但是你想一次得到结果。那么这个?
grep-rhoP”(?所以这是一个使用
grep-e something-e something
的问题,对吗?@kent我感谢你的想法,但我似乎不擅长问正确的问题。我更新了它,希望它现在更清楚。
grep -rP "(?<=CALL\()DoThis(?=\))" .