代码之家  ›  专栏  ›  技术社区  ›  Istvan

如何从cli输出中删除“^[[2K”序列?

  •  -1
  • Istvan  · 技术社区  · 7 年前

    查询引擎输出包含此序列的文本,该序列在我的终端上类似于“^[[2K”。我在google上找不到关于它的任何信息,我想知道如何从输出中删除它。

    CPU Time: 3.8s total, 26.3M rows/s,  143MB/s, 18% active
    ^[[2KPer Node: 0.5 parallelism, 14.4M rows/s, 78.6MB/s
    Parallelism: 2.7
    ^[[2KPeak Memory: 24B
    0:01 [100M rows, 544MB] [72.2M rows/s, 393MB/s]
    

     tr -d '^[[2K'
    

    有更好的方法吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   KamilCuk    7 年前
    $ echo -e 'CPU Time: 3.8s total, 26.3M rows/s,  143MB/s, 18% active
    \033[2KPer Node: 0.5 parallelism, 14.4M rows/s, 78.6MB/s
    Parallelism: 2.7
    \033[2KPeak Memory: 24B
    0:01 [100M rows, 544MB] [72.2M rows/s, 393MB/s]' | sed 's/'"$(echo -e "\033")"'\[2K//'
    

    输出:

    CPU Time: 3.8s total, 26.3M rows/s,  143MB/s, 18% active
    Per Node: 0.5 parallelism, 14.4M rows/s, 78.6MB/s
    Parallelism: 2.7
    Peak Memory: 24B
    0:01 [100M rows, 544MB] [72.2M rows/s, 393MB/s]
    

    ^[ \033 八进制或 0x1b 价值。开始ascii escpae序列的字符。 tr 是一个删除字符(不是字符串,单个字符)的工具,因此它不起作用。在这里我用过 sed sed 's/'"$(echo -e "\033")"'\[2K//'

    推荐文章