我的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很新,有人可以帮忙吗?
答案 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