为什么 sed 不能使用我的 netcat 输入?

问题描述 投票:0回答:1

netcat -k -l 10080 | grep --line-buffered“GET /”|切-b6- | sed“s/HTTP.*//” 如果我向它提供一个日志文件,它工作得很好,但当给它真实的东西时,它不会输出。 所以我尝试添加 -u 来设置但仍然不起作用

如果喂食:

GET /test message :) HTTP/1.1
Host: 127.0.0.1
Accept-Encoding: identity
Connection: close
Content-type: application/x-www-form-urlencoded
Accept: text/plain

它应该输出:

test message :)
当通过 cat 发送时,效果很好。但当它从 netcat 获取真实的东西时,它就不起作用了。 预先感谢

bash sed netcat
1个回答
0
投票

它是缓冲 netcat 输出的剪切。所以 sed 没有得到它。

我建议用第二个 sed 替换来替换剪切,如下所示。

$ netcat -k -l 10080 | grep --line-buffered GET | sed -e "s/GET //" -e "s/ HTTP.*//"
© www.soinside.com 2019 - 2024. All rights reserved.