【发布时间】:2018-03-18 13:24:17
【问题描述】:
我在处理 CSV 的 bash 脚本中使用了一些 awk。 awk 这样做:
ORIG_FILE="score_model.csv"
NEW_FILE="updates/score_model.csv"
awk -v d="2017_01" -F"," 'BEGIN {OFS = ","} {$(NF+1)=d; print}' $ORIG_FILE > $NEW_FILE
这个转换是什么:
# before
model_description, type, effective_date, end_date
Inc <= 40K, Retired, 08/05/2016, 07/31/2017
Inc > 40K Age <= 55 V5, Retired, 04/30/2016, 07/31/2017
Inc > 40K Age > 55 V5 , Retired, 04/30/2016, 07/31/2017
# after, bad
model_description, type, effective_date, end_date, 2017_01
Inc <= 40K, Retired, 08/05/2016, 07/31/2017, 2017_01
Inc > 40K Age <= 55 V5, Retired, 04/30/2016, 07/31/2017, 2017_01
Inc > 40K Age > 55 V5 , Retired, 04/30/2016, 07/31/2017, 2017_01
我希望新列有一个标题,以便新的 CSV 看起来像
# after, desired
model_description, type, effective_date, end_date, cmpgn_group
Inc <= 40K, Retired, 08/05/2016, 07/31/2017, 2017_01
Inc > 40K Age <= 55 V5, Retired, 04/30/2016, 07/31/2017, 2017_01
Inc > 40K Age > 55 V5 , Retired, 04/30/2016, 07/31/2017, 2017_01
我知道有一种方法可以在第一行单独指定要执行的操作,但我无法弄清楚。
【问题讨论】: