【问题标题】:replace one csv values from other and fill missing ones从另一个替换一个 csv 值并填充缺失的值
【发布时间】:2021-11-13 06:55:00
【问题描述】:

我有两个 csv 文件。首先的格式是:

2019-10-01,1,2,3,4,5,6
2019-10-03,11,22,33,44,55,66
2019-10-05,10,20,30,40,50,60

秒的格式是(一栏):

2019-10-01
2019-10-02
2019-10-03
2019-10-04
2019-10-05

如果日期相同,我的目标是用第一行替换第二行的 csv 行。之后,用上面的值填充缺失的行。预期结果:

2019-10-01,1,2,3,4,5,6
2019-10-02,1,2,3,4,5,6
2019-10-03,11,22,33,44,55,66
2019-10-04,11,22,33,44,55,66
2019-10-05,10,20,30,40,50,60

是否可以使用 sed 或 awk 命令,或者 shell 脚本是唯一的选择?

【问题讨论】:

  • 文件排序了吗?
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: shell


【解决方案1】:

当然,它 可以使用 awk,例如。 g.:

awk -F, '{today=$0    # if needed, get next line from first file and store the data:
          if (today>date) {getline <"First.csv"; date=$1; OFS=FS; $1=""; rest=$0}
          if (date==today) data=rest  # if date reached, recall new data
          print today""data
         }
        ' Second.csv

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-05
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2019-07-18
    • 1970-01-01
    • 2017-02-08
    相关资源
    最近更新 更多