使用数字序列使用awk将列添加到CSV文件

时间:2017-03-19 19:57:52

标签: awk

我正在尝试使用以下awk命令。我的目标是使用数字序列使用序列的值在我的文件中创建一个新列。最后,我想生成包含每个新列的CSV文件:

for i in $(seq 0 0.5 70); do 
awk -F"," 'BEGIN {OFS = ","} {$7=$(echo $i); print}' ClassificationTest.csv > new_columns_$i.csv;
done

输入CSV文件如下所示:

Sample1,Probe1,Temp1,ProbeType1,SampleType1,Ratio1
Sample2,Probe2,Temp2,ProbeType2,SampleType2,Ratio2

预期结果应如下所示:

名为new_columns_20.0.csv

的文件
Sample1,Probe1,Temp1,ProbeType1,SampleType1,Ratio1,20.0
Sample2,Probe2,Temp2,ProbeType2,SampleType2,Ratio2,20.0

我的目标是为数字序列的每个值提供一个文件。我很难将序列的值作为参数传递。有人可以提供有关如何执行此操作的帮助吗?谢谢。

1 个答案:

答案 0 :(得分:3)

这是一种做法

for i in {0..140}; 
do awk -F, -v OFS=, -v i=$i '{$7=i/2}1' input > output_$i; 
done

或完全在awk

之内
awk -F, -v OFS=, '{for(i=0;i<=70;i+=0.5) 
                      {$7=i; print > "output_"i}}' input