【问题标题】:Updating values in CSV file using awk [closed]使用 awk 更新 CSV 文件中的值 [关闭]
【发布时间】:2015-09-16 20:10:58
【问题描述】:

我有一个 CSV 文件,我需要使用awk 命令编写一个脚本,我需要一些帮助。 对于每一个odd列(除了第一列),如果value等于0,那么左边的值也需要为零。

输入:

1,1,0,1,1,1,0
2,3,4,0,3,2,1
3,3,0,3,5,7,6
3,6,6,7,0,8,4

输出:

1,0,0,1,1,0,0
2,3,4,0,3,2,1
3,0,0,3,5,7,6
3,6,6,0,0,8,4

有人可以帮我执行命令吗?

【问题讨论】:

  • @Bhush_Techidiot:阅读所有 Omri 的基于 CSV 的问题。暗里:你为什么又问这个?
  • @shellter 我对这些命令有基本的了解,这是一个非常紧急的需求。希望能有时间一步步学习,提高自己的能力。无论如何,我的问题和我得到的答案,对未来的其他用户都有好处。

标签: bash csv awk


【解决方案1】:

这个 awk 命令应该可以工作:

awk 'BEGIN{FS=OFS=","} {for (i=3; i<=NF; i+=2) if ($i==0) $(i-1)=0} 1' file
1,0,0,1,1,0,0
2,3,4,0,3,2,1
3,0,0,3,5,7,6
3,6,6,0,0,8,4

for (i=3; i&lt;=NF; i+=2) 将从字段#3 开始迭代奇数字段列表,如果当前为0,则将前一个字段设置为0

【讨论】:

  • 效果很好。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-10
  • 1970-01-01
  • 2012-06-24
  • 2022-01-28
  • 2023-03-03
  • 1970-01-01
  • 2014-03-05
相关资源
最近更新 更多