【发布时间】:2021-10-07 02:12:36
【问题描述】:
下面是两个 csv 文件,我们需要将这两个文件与第一列进行比较
NewFile.csv
-----------
data1, A
data2.5, B
data3, C
data4.3, D
data5, E
data6, F
OldFile.csv
------------
data1, A
data2, B
data3, C
data4, D
data5, E
如下输出文件
OutputFile.csv
-------------
Updated
data2.5, B
data4.3, D
Added
data6, F
我正在使用以下命令来执行此操作,但它只是向我展示了所有差异,需要将其分开,就像在 NewFile.csv 中更新和新添加的内容一样
awk -F',' 'FNR==NR{a[$1];next};!($1 in a)' NewFile.csv OldFile.csv
上述命令的输出文件:-
data2.5, B
data4.3, D
data6, F
但我正在寻找一个输出,我可以清楚地声明它正在使用 shell 脚本在新的输出中添加和更新。
【问题讨论】:
-
你的字段分隔符是什么?逗号或制表符或逗号和制表符或逗号和多个空格?
-
逗号分隔符@Cyrus
-
您认为何时更新而不是添加记录?如果记录与旧记录位于同一位置,则记录是否已更新,或者如果第二列相同,则记录是否已更新?
-
是否更新了记录,如果它与旧记录在同一位置 - 是@Socowi