Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何Grep多行以获取所有线程内容_Regex_Unix_Grep - Fatal编程技术网

Regex 如何Grep多行以获取所有线程内容

Regex 如何Grep多行以获取所有线程内容,regex,unix,grep,Regex,Unix,Grep,如何Grep多行以获得该线程下的所有行。 我已经试过grep-A,-B,-C了,但这似乎比我需要的多,有时比我需要的少 $cat text.txt ===================================================================== [11-23-18 10:07:01:119]::Thread(ABC):request returned [11-23-18 10:07:01:120]::Thread(ABC):Sending packet

如何Grep多行以获得该线程下的所有行。 我已经试过grep-A,-B,-C了,但这似乎比我需要的多,有时比我需要的少

$cat text.txt
=====================================================================
[11-23-18 10:07:01:119]::Thread(ABC):request returned

[11-23-18 10:07:01:120]::Thread(ABC):Sending packet 'POST /aq/ConManager HTTP/1.1
Host: localhost:192.168.1.1
User-Agent: gSOAP/2.7
Content-Type: text/xml; charset=utf-8
Content-Length: 1149
Connection: keep-alive
Accept-Encoding: gzip, deflate
SOAPAction: ""

[11-23-18 10:07:01:121]::Thread(XYZ): doing request

[11-23-18 10:07:01:122]::Thread(XYZ): request returned

================================================================
现在,如果我使用
grep-a10abctext.txt
,它将输出所有其他行,如
线程XYZ
。其中我只想输出所有ABC线程及其行。如果我只使用grep,它将不会输出ABC线程之后的后续行

您可以使用

awk '/^\[[^][]*]::Thread\(ABC\)/,/^$/' file > newfile
它匹配两个模式之间的一个行块,第二个匹配一个空行,第一个匹配:

  • ^
    -行的开头
  • \[
    -a
    [
  • [^][]*
    -0+字符,而不是
    [
    ]
  • ]
    -a
    ]
  • ::Thread\(ABC\)
    -a
    ::Thread(ABC)
    子字符串

请参阅。

这里有一个可能是您想要的,也可能不是您想要的:

$ awk -v RS="" '/ABC/' file
输出:

=====================================================================
[11-23-18 10:07:01:119]::Thread(ABC):request returned
[11-23-18 10:07:01:120]::Thread(ABC):Sending packet 'POST /aq/ConManager HTTP/1.1
Host: localhost:192.168.1.1
User-Agent: gSOAP/2.7
Content-Type: text/xml; charset=utf-8
Content-Length: 1149
Connection: keep-alive
Accept-Encoding: gzip, deflate
SOAPAction: ""
解释:

$ awk -v RS="" '  # use empty records as record separators
/ABC/             # if there is ABC in the record, print it
' file            

使用问题编辑器中的
{}
按钮格式化数据和代码,另外,请添加示例数据的预期输出。