2017-01-01 4 views
3

RPi3에서 Raspbian (실제로는 HASSBian)을 사용하고 있습니다.netcat에서 awk로 stdout을 전달할 수없는 이유는 무엇입니까?

[email protected]:~ $ netcat localhost 1099 | grep -i on 
01/01 22:57:29 Rx RF HouseUnit: C2 Func: On 
01/01 22:57:30 Rx RF HouseUnit: B4 Func: On 
01/01 22:57:31 Rx RF HouseUnit: B5 Func: On 
01/01 22:57:32 Rx RF HouseUnit: B6 Func: On 
01/01 22:57:40 Rx RF HouseUnit: C1 Func: On 
01/01 22:57:47 Rx RF HouseUnit: C2 Func: On 
01/01 22:58:03 Rx RF HouseUnit: C2 Func: On 
01/01 22:58:04 Rx RF HouseUnit: C1 Func: On 

을하지만 파이프하려고 할 때이 내가 어떤 출력을 얻을 원하는 두 개의 필드를 꺼내 awk가에 : 나는 netcat을 출력을 구문 분석하는 데 노력하고있어. 다음과 같이 보입니다 :

[email protected]:~ $ netcat localhost 1099 | grep -i on | awk '{print $6,$8}' 

나는 이것이 단지 작동해야한다고 생각하는데 잘못 되었습니까?

[email protected]:~ $ uname -a 
Linux raspberrypi 4.4.38-v7+ #938 SMP Thu Dec 15 15:22:21 GMT 2016 armv7l GNU/Linux 
+2

가에서 봐 주시기 바랍니다 : [내가 뭘해야 누군가가 내 질문에 대답 할 때합니까?] (http://stackoverflow.com/help/someone-answers) – Cyrus

답변

2

grep의 출력은 터미널에 쓰지 않을 때 완전히 버퍼링됩니다. 당신이 그 출력 버퍼링 동작을 제어 할 수없는 프로그램의 경우 그렙

netcat localhost 1099 | grep --line-buffered -i on | awk '{print $6,$8}' 

--line-buffered 플래그를 사용하여,이 프로그램이 stdbuf 명령으로 포장 될 수있다하는 것은

+0

'grep'을 사용하지 않고'awk' 만 사용하도록 제안하지 않으시겠습니까? 어서, 노력해라. –

+2

자신을 대답으로 제안하는 것이 어떻습니까? – nos

+0

그런 사소한 질문에 대해 다른 대답을 추가하는 것은 너무 많은 소음 일 것이기 때문입니다. –