使用shell脚本有条件地修改csv单元

时间:2017-02-06 06:17:58

标签: shell csv

我的csv文件如下所示

Name, Age, Status
John, 24, Online
Allan, 35, Offline
Steve, 40, Offline

使用shell脚本,我需要实现类似这样的东西

if (name == "Allan"), set Status="Online"

所以csv必须看起来像

Name, Age, Status
John, 24, Online
Allan, 35, **Online**
Steve, 40, Offline

我对shell很新,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

awk -F, -v OFS=,  '{split($5,a," ");if(a[2]=="Allan")gsub(/Offline/,"Online",$7)}1' inputfile

说明:如果在第五列的后半部分找到关键字"Allan",则在第七列中将Offline替换为Online

答案 1 :(得分:0)

试试这个:

awk 'BEGIN {OFS=FS=","} {if ($1=="Allan")sub($3,"Online"); print}' file