Не считается ли \ n пробелом в grep? - PullRequest
1 голос
/ 27 марта 2012

Я использую 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".Если так, как я могу получить желаемый результат?Пожалуйста, помогите мне.Благодарю.

1 Ответ

1 голос
/ 27 марта 2012

Попробуйте сопоставить в конце строки

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

Помните, что grep просматривает входные данные построчно, поэтому он не увидит возврат каретки. Приведенный выше шаблон находит любую строку, заканчивающуюся FunctionX, с некоторым возможным (реальным) пробелом, следующим за ней до конца строки.

...