eg 를 사용할 때 출력에서 현재 진행 상황을 실시간으로 확인하고 나중에 사용할 수 있는 로그를 갖고 rsync
싶습니다 . tee
파이프만 사용하면 | tee logfile
로그 파일에 많은 줄이 포함됩니다.
0 files...<CR>
100 files...<CR>
200 files...<CR>
캐리지 리턴 <CR>
문자는 현재 행을 실시간 출력으로 바꾸는 데 사용됩니다. 이는 정확히 이 stdout
부분 에서 tee
원하는 동작이지만 로그 파일에서 <CR>
a와 마지막 항목 사이의 내용을 삭제하도록 할 수 있는 방법이 있습니까 <LF>
? (구체적인 답변을 요구하는 것이 아닙니다 rsync
. 이것은 단지 예일 뿐입니다!) sed
중간에 파이프가 있을 수도 있나요?
답변1
다음을 수행할 수 있습니다.
... | tee /dev/stderr | grep -v $'\r' > logfile
또는:
.... | tee >(grep -v $'\r' > logfile)
이렇게 하면 효과적으로 제거됩니다.진전선 rsync
. bash와 zsh $'...'
도 >(...)
ksh 구문을 지원하지만 표준은 아닙니다 sh
.