【问题标题】:how to multiply a range of elements in a line by a constat如何将一行中的一系列元素乘以一个常数
【发布时间】:2014-11-20 16:45:24
【问题描述】:

我有一个包含几列的文件,我想将这些列的前半部分元素乘以一个常数。 例如,如果我只有 4 列和 2 行:

 8  2 4 5
 6 12 8 8 

我想要的输出(假设乘法常数是1/2)如下:

4 1 4 5
3 6 8 8

我没有胶水怎么做,我想bc会有所帮助...

【问题讨论】:

    标签: bash bc


    【解决方案1】:

    您可以像这样使用awk 在行/列的基础上处理您的文件:

    awk -v n=2 '{for (i=1; i<=NF/2; i++) $i/=n} 1' file
    4 1 4 5
    3 6 8 8
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      • 2022-01-25
      • 2016-04-02
      相关资源
      最近更新 更多