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

从日志文件中删除timestamp列而不影响bash中的实际日志

  •  0
  • ART  · 技术社区  · 6 年前


    文件内容如下。

    $ cat test 
    04-13 04:33:11.341: abc : xyz
    04-13 04:33:11.342: aaa------ : bbbb
    04-13 04:33:11.342: sometext sometext
    

    $ cat test | awk -F": " '{$1=""; print}'
     abc  xyz
     aaa------  bbbb
     sometext sometext
    

    但正如你所见 : 也从实际的日志中? 这是一个错误的选择,我不能使用切割,因为我正在使用两个字符长的分隔符。

    还有其他建议吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Quasímodo    6 年前

    使用更具体的分隔符

    $ awk -F "[0-9]: " '{$1=""; print}' test
     abc : xyz
     aaa------ : bbbb
     sometext sometext
    

    这意味着:分隔符是序列 digit : , space .

    awk 删除字段分隔符( FS OFS OFS=FS 要在输出中保留字段分隔符,请执行以下操作:

    $ awk -F ": " 'BEGIN{OFS=FS}{$1=""; print}' test
    : abc : xyz
    : aaa------ : bbbb
    : sometext sometext
    
        2
  •  2
  •   Jetchisel    6 年前

    如果这是你数据的唯一/确切结构,那么 cut . 否则,是的, awk sed 还有朋友。

    cut -d ' ' -f3- file.txt
    

    abc : xyz
    aaa------ : bbbb
    sometext sometext