使っています見たそしてジャック美しく印刷された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)
- MacOS 10.15.3
- coreutils: stable 8.31 (brew 経由でインストール)
- coreutilsのtr
sedバージョンが見つかりませんが、man sed
タグが付けられていますBSD May 10, 2005
。