\n在grep中不被认为是空白吗?

\n在grep中不被认为是空白吗?,grep,newline,whitespace,Grep,Newline,Whitespace,我正在使用grep查找所有发生的VB函数调用。我以这种方式发出命令- grep -n "FunctionX" FormX.frm 1814: FunctionX 2682: FunctionX 3020:' FunctionX 3292:Private Sub FunctionX() 3333:On Error GoTo FunctionX_Err 3388: ' GoTo FunctionX_Exit 3394:GoT

我正在使用grep查找所有发生的VB函数调用。我以这种方式发出命令-

   grep -n "FunctionX" FormX.frm

   1814:       FunctionX
   2682:    FunctionX
   3020:'    FunctionX
   3292:Private Sub FunctionX()
   3333:On Error GoTo FunctionX_Err
   3388: '  GoTo FunctionX_Exit
   3394:GoTo FunctionX_Exit
   3456:FunctionX_Err:
   3460:FunctionX_Exit:
但正如您所看到的,它也给了我一些实例,说明它不是一个函数调用。对于VB函数调用,函数名后面没有任何内容,因此我假设它是一个后跟空格的函数调用。我试过-

    grep -nr "FunctionX[[:space:]]" FormX.frm

然而,这并没有给我任何结果。这是因为“\n”不被视为空白吗?代码中对FunctionX的每次调用后面都会有一个“\n”。如果是,我如何获得期望的结果?请帮帮我。谢谢

尝试在行尾进行匹配

 grep -nr 'FunctionX[[:space:]]*$' FormX.frm

记住grep正在逐行查看输入,所以它不会看到回车。上面的模式可以找到任何以FunctionX结尾的行,在该行的结尾之前有一些可能的(实)空格。

尝试在该行的结尾进行匹配

 grep -nr 'FunctionX[[:space:]]*$' FormX.frm

记住grep正在逐行查看输入,所以它不会看到回车。上面的模式查找以FunctionX结尾的任何行,其中包含一些可能的(实数)空白符在行尾之前跟随。

正则表达式的大多数实现并不认为代码> \n>代码>是空白。您可能会在这里得到答案,但您可能会得到一个更快的。谢谢。MichaelTodd,有什么具体的原因吗?“代码蓝是的,这是因为您需要用UNIX/Linux命令进行帮助。这是极有可能的(正如你看到答案来得如此之快)一个程序员能够回答你的问题,但是熟悉Unix的人也更有可能回答这个问题,因为它不是编程特定的。大多数的正则表达式的实现并不认为代码> \n>代码>是空白。你可能会在这里得到答案,但是你可能得到一个答案。快点。好的,谢谢@MichaelTodd有什么特别的原因吗?@CodeBlue是的,这是因为您需要UNIX/Linux命令的帮助。这是极有可能的(正如你看到答案来得如此之快)程序员能够回答您的问题,但更可能的是,熟悉UNIX的人也能够回答这个问题,因为它不是特定于编程的。$符号表示什么?与行尾匹配$符号表示什么?与行尾匹配