关于在shell脚本中将公式应用于CSV文件

时间:2017-04-21 00:22:54

标签: shell csv sh formula

我是shell脚本的新手,想学习如何创建一个简单的脚本来执行以下操作:

  1. 在我的CSV文件中创建n列
  2. 应用使用其他列的公式,为每行
  3. 在这些新列中创建值
  4. 在当前文件中写入列(我不想为输出创建新文件)
  5. 我的例子:

    X,Y,Z,LAT,LONG
    -981,545,3643
    -979,544,3644
    

    我想要的例子:

    X,Y,Z,LAT,LONG
    -981,545,3643,$X*$X,$LAT*$Y
    -979,544,3644,$X*$X,$LAT*$Y
    

    我有一个非常大的文件,所以我正在寻找一些简单的东西。对不起我的英语,谢谢你的帮助!!

    编辑:我想用刚刚创建的新列计算最后一列,但只有一步。

1 个答案:

答案 0 :(得分:2)

awk 方法:

awk 'BEGIN {
    FS=",";
    OFS=",";
}
{
    if (NR == 1) {
        print $0, "X*X", "LAT*Y"
    } else {
        print $0, $1*$1, $2*$4;
    }
}' data.csv > tmp_data.csv

mv tmp_data.csv data.csv

输出:

X,Y,Z,LAT,LONG,X*X,LAT*Y
-981,545,3643,962361,0
-979,544,3644,958441,0