나는 사용하고있다봤다그리고잭아름답게 인쇄되는 JSON 로그 스트림을 얻기 위해 몇 가지 필터링을 추가했지만 아래에는 출력이 없습니다. 그냥 멈춰 있어요.
saw watch /aws/ecs/container-log \
| sed -e 's/^\[.*\] \(.*\)(.*)/\1/' \
| tr '\n' '\0' \
| xargs -0 -n1 jq .
>
saw watch
스트리밍 컨테이너 로그는 다음과 같습니다 tail -f log.file
. 타임스탬프와 로그 ID를 필터링하는 데 사용되었으며 sed
남은 것은 JSON뿐입니다.
방금 시청을 마쳤을 때 sed
로그 스트림의 시작 부분을 올바르게 필터링했습니다.
saw watch /aws/ecs/container-log \
| sed -e 's/^\[.*\] \(.*\)(.*)/\1/'
> {"data": "..."}
하지만 다시 추가하면 tr
다시 멈춥니다.
saw watch /aws/ecs/container-log \
| sed -e 's/^\[.*\] \(.*\)(.*)/\1/' \
| tr '\n' '\0'
>
그러나 잘 tr
작동합니다 echo
.
echo hey | hexdump -c
> 0000000 h e y \n
> 0000004
echo hey | tr '\n' '\0' | hexdump -c
> 0000000 h e y \0
> 0000004
원인은 무엇일까요? 어떻게 해결할 수 있나요?
나는 그것을 사용하고 있다
- zsh 5.8(x86_64-apple-darwin19.3.0)
- 맥OS 10.15.3
- coreutils: stable 8.31(brew를 통해 설치)
- coreutils의 tr
sed 버전을 찾을 수 없지만 man sed
태그가 지정되어 있습니다 BSD May 10, 2005
.