grep / sed + соответствует точно сложной линии - PullRequest
2 голосов
/ 30 августа 2010

У меня есть файл:

  # more file
  (WORD = (TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT = 10234))

но когда я пытаюсь сопоставить часть строки (с помощью grep -w) в файле, grep также совпадает со строкой (хотя это часть полной строки)

 grep -w "(TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT = 10234))" file

 (WORD = (TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT = 10234))

мой вопрос, как точно соответствовать строке в файле

так что, если я использую grep или что-то еще, например sed / awk, он будет соответствовать только полной строке?

Lidia

1 Ответ

2 голосов
/ 30 августа 2010

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

echo $name | grep -o "(WORD = (TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT = 10234))"

Просто чтобы увидеть результат наCL, пропустите "echo $ name |".

Если вы хотите захватить точный текст в вашей переменной, вы можете сделать:

name=`grep -o "(WORD = (TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT = 10234))" /Users/deveritt/Desktop/test.html`
echo $name
(WORD = (TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT = 10234))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...