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

在文件中查找字符串并在Linux中对零件执行数学运算

  •  1
  • KPK  · 技术社区  · 7 年前

    sed 我不工作,因为我想做数学和数学 awk 将是困难的,因为我想更新文件到位。

    Index: code/foo.c
    ===================================================================
    --- code/foo.c  (revision 13)
    +++ code/foo.c  (working copy)
    @@ -3,5 +3,5 @@
     int main(int argc, char *argv[])
     {
         printf("I don't like being moved around!\n%s", bar());
    -    return 0;
    +    return 1;
     }
    

    @@ . 所以 @@ -3,5 +3,5 @@ 将成为 @@ -3,5 +3,6 @@

    2 回复  |  直到 7 年前
        1
  •  4
  •   RavinderSingh13 Nikita Bakshi    7 年前

    你能试试下面的吗。

    awk '
    BEGIN{
      FS=OFS=","
    }
    /^@@.*@@/{
      split($NF,array," ")
      $NF=array[1]+1" " array[2]
    }
    1
    '   Input_file
    

    如果您想将输出保存到输入文件中,请附加 > temp_file && mv temp_file Input_file 在上面的代码中也是如此。

    如果您正在使用GNU awk >=4.1.0确实有一个 -i inplace 也在里面。

        2
  •  0
  •   Ed Morton    7 年前

    $ awk 'match($0,/^(@@.*,)([0-9]+)( @@)$/,a){$0=a[1] a[2]+1 a[3]} 1' file
    Index: code/foo.c
    ===================================================================
    --- code/foo.c  (revision 13)
    +++ code/foo.c  (working copy)
    @@ -3,5 +3,6 @@
     int main(int argc, char *argv[])
     {
         printf("I don't like being moved around!\n%s", bar());
    -    return 0;
    +    return 1;
     }