프로그램의 출력을 한 줄씩 스트림으로 읽는 개념이 있습니까?

PHPz
풀어 주다: 2024-02-05 23:18:13
앞으로
650명이 탐색했습니다.

프로그램의 출력을 한 줄씩 스트림으로 읽는 개념이 있습니까?

질문 내용

라인을 표준 출력으로 지속적으로 스트리밍하는 쉘 명령(예: journalctl -f -o json)이 있습니다.

이 출력을 한 줄씩 검색하여 추가로 처리하고 싶습니다.

os/exec 的文档解决了如何读取命令的输出,io 스트림 버퍼링을 처리합니다.

모든 처리는 읽고, 처리하고, 추가로 쓰는 고정 버퍼를 통과하는 것 같습니다. 내 문제는 이 버퍼의 크기가 고정되어 있고 내용과 무관하다는 것입니다.

들어오는 스트림(제 경우에는 셸 명령의 출력)을 한 줄씩 읽을 수 있는 방법이 있나요? 어쩌면 io 리더보다 더 높은 수준의 라이브러리가 있을까요? io 读者更高级的库?


正确答案


使用 cmd.stdoutpipe() 获取(管道)使用 cmd.start() 启动该进程之前的输出( start()

정답

bufio.scanner 读取输入 (io.reader cmd를 사용하세요 .stdoutpipe() cmd.start(를 사용하여 (파이프라인) 가져오기 ) 프로세스를 시작하기 전 출력( start() 는 명령을 시작하지만 완료될 때까지 기다리지 않습니다).

그리고

) 한 줄씩 사용하세요.

예를 들어, 다음 bash 스크립트를 사용하여 현재 시간을 3번 인쇄하고 각 시간 사이에 1초씩 절전 모드로 전환합니다.

으아아아

이 명령을 실행하고 출력을 한 줄씩 읽는 예: log 包,以验证每行在第二次延迟后打印,另一个时间戳是 date 으아아아

샘플 출력: 🎜 으아아아 🎜 (각 줄 시작 부분의 첫 번째 날짜/시간은 🎜 명령의 출력에서 ​​나옵니다.) 🎜

위 내용은 프로그램의 출력을 한 줄씩 스트림으로 읽는 개념이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!