grep/sed+;精确匹配复线

grep/sed+;精确匹配复线,grep,Grep,我有档案: # more file (WORD = (TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT = 10234)) 但是当我尝试匹配文件中的部分行(由grep-w)时,grep也会匹配该行(尽管这是整行的一部分) 我的问题是如何精确匹配文件中的行 所以,如果我使用grep或其他类似sed/awk的东西,它将只匹配整行 Lidia通过返回整行,grep只是表示is在该行中找到了字符串。如果只想在命令行上查看匹配的文本,可以(例如)使

我有档案:

  # more file
  (WORD = (TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT = 10234))
但是当我尝试匹配文件中的部分行(由grep-w)时,grep也会匹配该行(尽管这是整行的一部分)

我的问题是如何精确匹配文件中的行

所以,如果我使用grep或其他类似sed/awk的东西,它将只匹配整行


Lidia

通过返回整行,grep只是表示is在该行中找到了字符串。如果只想在命令行上查看匹配的文本,可以(例如)使用-o(仅匹配):

为了查看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))

…或将第二个示例与反勾号一起使用`
echo $name | grep -o "(WORD = (TCPIP = (PROTOCOL = TCP)(WORD = ALIAS_NAME)(PORT = 10234))"
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))