Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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 正在尝试清理ElasticSearch跟踪程序输出_Regex_Bash_Grep - Fatal编程技术网

Regex 正在尝试清理ElasticSearch跟踪程序输出

Regex 正在尝试清理ElasticSearch跟踪程序输出,regex,bash,grep,Regex,Bash,Grep,我经常使用elasticsearch,我需要一种方法来查看对elasticsearch服务器的请求 所以我找到了这个bash脚本: sudo tcpdump -A -nn -s 0 'tcp dst port 9200 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -i lo 我只想保留JSON 所以我想通过淘汰制 我添加了这个正则表达式: sudo tcpdump -

我经常使用elasticsearch,我需要一种方法来查看对elasticsearch服务器的请求

所以我找到了这个bash脚本:

sudo tcpdump -A -nn -s 0 'tcp dst port 9200 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -i lo
我只想保留JSON

所以我想通过淘汰制

我添加了这个正则表达式:

 sudo tcpdump -A -nn -s 0 'tcp dst port 9200 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -i lo | grep -v "[0-9]{2}[:][0-9]{2}[:][0-9]{2}\.[0-9]*[ ][I][P][ ][0-9]{1,3}\.[0    -9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]*[ ][\>].*"
因此,只保留body/JSON


我试图一行一行地去做,但现在它甚至没有删除我的正则表达式的第一个目标。

这将完成您到目前为止告诉我们的内容(从3个文本块的序列中删除中间文本块):


如果这不是你想要的,然后编辑我的评论中的问题来澄清你的问题。

HMM,我希望我没有这样做,我已经回滚了我所有的编辑,但是我仍然在你的<代码> GRIP-V字符串中间看到<代码>(0 - 9)< /代码>。对不起,我把事情搞砸了。此外,您可能希望从示例输入中显示所需的输出(JSON)。祝你好运。不要以为我们知道body/JSON是什么。除了空行,我看不出你得到的和你说要删除的有什么区别。只要发布简洁、可测试的示例输入和预期输出,以及您想要实现的转换的解释,更广泛的受众将能够帮助您。通过删除我显示的行,唯一剩下的就是JSON。我正在尝试构建一个黑名单过滤器。我发布的答案删除了您显示的行,所以我的答案中留下的文本“JSON”解决了您的问题?如果没有-无论您试图构建什么,只要(至少!)显示示例输入和问题中给定的预期输出即可。。。有时候不是。我正在尝试构建一个黑名单过滤器。所以,如果它符合一种模式,就把它拿出来。剩下的将是JSON。除非白名单过滤会更快。比任何带有JSON的行都多。。。任何以{结尾的词。但我不确定这是否是最好的方法。问题是我可能也会将它用于其他不符合JSON模式的事情。对不起,我不知道你在说什么。在您的示例中,连接下只有空行-这就是您想要的输出,一堆空行吗?你给我们看了一堆你想删除的文本,完全没有解释为什么要删除,也没有与你的grep脚本明显的关联。如果您在问题中简单地显示简洁、可测试的示例输入和预期输出,这将非常有帮助。
 sudo tcpdump -A -nn -s 0 'tcp dst port 9200 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -i lo | grep -v "[0-9]{2}[:][0-9]{2}[:][0-9]{2}\.[0-9]*[ ][I][P][ ][0-9]{1,3}\.[0    -9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]*[ ][\>].*"
11:40:49.707181 IP 127.0.0.1.50271 > 127.0.0.1.9200: Flags [P.], seq 3009491178:3009491248, ack 3451175088, win 342, options [nop,nop,TS val 910080 ecr 910079], length 70
    E..z..@.@.jc........._#..a0........V.n.....
    ..GET /_nodes HTTP/1.1
    Host: localhost:9200
    Connection: keep-alive
$ awk -v RS= -v ORS='\n\n' 'NR!=2' file
11:40:49.690863 IP 127.0.0.1.50270 > 127.0.0.1.9200: Flags [P.], seq 2594084191:2594084256, ack 2674569216, win 342, options [nop,nop,TS val 910075 ecr 910075], length 65
E..uw.@.@............^#...._.j.....V.i.....
..HEAD / HTTP/1.1
Host: localhost:9200
Connection: keep-alive

11:40:52.215800 IP 127.0.0.1.50272 > 127.0.0.1.9200: Flags [P.], seq 148869443:148869508, ack 2833610757, win 342, options [nop,nop,TS val 910707 ecr 910707], length 65
E..ut3@.@..M.........`#....C..x....V.i.....
.sHEAD / HTTP/1.1
Host: localhost:9200
Connection: keep-alive