cdrecord의 grep 출력

cdrecord의 grep 출력

cdrecord/wodim의 출력을 구문 분석하기 위해 grep을 사용하고 싶습니다. cdrecord -v다음과 같은 출력 라인

Track 01:   49 of   75 MB written (fifo 100%) [buf 100%]  10.2x.

문제는 cdrecord가 같은 줄에 진행 상황을 표시하기 위해 캐리지 리턴( CR, )을 사용한다는 것입니다.\r

일반적으로 작동하는 cdrecord 호출에 추가를 시도했지만 tr '\r' '\n'출력이 정렬되지 않습니다. 대신, 많은 양의 텍스트가 구문 분석되어 표시됩니다.

cdrecord -v ... | tr '\r' '\n' | grep -i written

cdrecord, tr 또는 grep 때문입니까? 출력을 한 줄씩 얻을 수 있도록 강제로 새로 고치는 방법이 있습니까?

도움을 주시면 감사하겠습니다.

답변1

출력이 tr버퍼링됩니다. 다음을 stdbuf -o0사용하여 trSTDOUT을 버퍼링되지 않은 상태로 만들 수 있습니다 .

cdrecord -v ... | stdbuf -o0 tr '\r' '\n' | grep -i written

관련 정보