2015-01-19 4 views
0

실시간 이메일 스트림을 처리하려고하는데 BASH에 익숙합니다.Netcat을 사용하여 실시간 스트림 처리

스트림을 수신하기 위해 netcat을 사용하고 있습니다. 이메일은 JSON으로 반환되며 새 이메일은 캐리지 리턴으로 표시됩니다.

각 이메일을 고유 한 파일로 작성하는 방법을 알아 내려고하고 있습니다. 거기에서 내 필요에 따라 JSON을 처리 할 수 ​​있습니다.

내가 말했던 몇 사람들은 내가 BASH를 이러한 목적으로 사용해서는 안된다고 말했지만 아마도 그것을 작동시킬 수 있다고 말했습니다. 나는 다른 사람들로부터 피드백을 찾고있다.

또한, 누군가가 nc를 사용하여 각 캐리지 리턴에서 파일로 출력하도록 도와 줄 수 있기를 바랍니다.

감사

**** 예 ****

nc localhost 123 

스트림을 열고 듣기 시작합니다

반환 된 정보가 보이는 같은 :

"to\":\"[email protected]\",\"x-connecting-ip\":\"12.12.12.12\",\"subject\":\"[Test Email] Email to fax=ABCDE_1234B1234\" 

새로운 이메일은 캐리지 리턴으로 구분됩니다. 고유 한 파일에 각 전자 메일을 쓰고 스트림을 계속 듣고 싶습니다.

+0

그래서 실제로 JSON이 아니십니까? 최소한 당신의 모범에서 볼 때, 그것은 나타나지 않습니다. 약간 큰 입력 데이터 (적어도 3 ~ 4 개의 이메일)를 가진 pastebin을 게시 할 수 있습니까? –

답변

0

그것을 할 수있는 가장 쉬운 방법은이 "의 Xaa"라는 한 줄에 한 파일 "XAB", "XAC"등을 만들 것 "분할"명령을

nc localhost 123 | split -l 1 

을 사용하는 것입니다. 더 많은 옵션을 보려면 split man 페이지를 확인하십시오.

+0

예! 그래도 이걸 이해할 수있게 도와 줄 수 있니? 파일을 xab, xaa 등으로 쓰는 이유는 무엇입니까? 나는 이것들을 변수로 설정하려고한다.'date + % b % d % y % H % M % S' 이것에 대해서는 man 페이지에 아무것도 표시되지 않는다. –

+0

xaa, xab ...으로 쓰여졌습니다. stdin을 읽고 파일 이름이 없으므로 X 만 사용하기 때문에 접미사를 변경할 수는 없지만 "- -additional-suffix = $ (날짜 + % b % d % y % % % M % S) "하지만 파일의 이름은"x "이고 접미사는 두 자리 접미사입니다. 그런 다음 다른 쉘 스크립트를 사용하여 원하는대로 이름을 바꿀 수 있습니다. 절대적으로 필요합니다. –