用awk处理多行变量,打印符合条件的未修改行


纾潆锦袖迷子
2025-03-12 06:05:36 (10天前)


我有一个变量包含多行文件的内容。该变量由多个命令(awk,sed,…)解析,这些命令充当变量的过滤器和后处理器。

回声……

2 条回复
  1. 0# 子阳 | 2019-08-31 10-32



    任何组合

    sed



    awk



    grep



    cut

    ,…通常可以用一个替换

    awk

    。这也允许您存储原始数据并根据条件返回。
    您可以轻松地看到以下内容

    awk

    您感兴趣的转换(首先是awk和sed)




    1. awk ‘{ t=$0
      match(t,”\[“); t=substr(t,RSTART+1)
      match(t,” “) ; t=substr(t,1,RSTART-1); split(t,a,”[/:]”)
      day=a[1]; year=a[3]; hhmmss=a[4]a[5]a[6];
      month=sprintf(“%02d”,(match(“JanFebMarAprMayJunJulAugSepOctNovDec”,a[2])+2)/3)
      print year month day hhmmss, t}’

    2. </code>


    所以现在你可以插入你的条件

    t

    并返回原件

    $0

    如果需要的话:




    1. awk -v d=”$date_after
      { t=$0
      match(t,”\[“); t=substr(t,RSTART+1)
      match(t,” “) ; t=substr(t,1,RSTART-1); split(t,a,”[/:]”)
      day=a[1]; year=a[3]; hhmmss=a[4]a[5]a[6];
      month=sprintf(“%02d”,(match(“JanFebMarAprMayJunJulAugSepOctNovDec”,a[2])+2)/3)
      }
      (t > d) { print $0 }’

    2. </code>


    基于:

    使用awk将月份从Aaa转换为xx


登录 后才能参与评论