You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下管道输出至cut命令无返回结果的问题排查

解决MacOS下tail + grep + cut无输出的问题

MacOS自带的是BSD版本的命令行工具,和GNU工具在缓冲机制、参数细节上存在差异,导致你加了cut后无输出。试试下面几种方案:

  • 用sed合并过滤与截断操作(最推荐,减少管道层级)

    tail -f log/development.log | sed -n '/mailer/s/^.\{64\}//p'
    

    这条命令同时完成了匹配含mailer的行,以及移除行首前64个字符的操作,避免了多管道的缓冲问题。

  • 用awk处理
    awk本身支持行级处理,缓冲问题更少:

    tail -f log/development.log | awk '/mailer/ {print substr($0,65)}'
    

    注意awk的substr是从1开始计数,所以substr($0,65)对应移除前64个字符的效果。

  • 调整工具缓冲参数(针对BSD工具)
    如果坚持要用grep+cut组合,试试给cut也加上无缓冲配置(MacOS的stdbuf可能需要通过brew额外安装):

    tail -f log/development.log | grep --line-buffered mailer | stdbuf -i0 -o0 cut -c 64-
    

内容的提问来源于stack exchange,提问作者Max Williams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 15:17:33