我有以下csv文件:

csv file 1               csv file 2
------------             ------------
1,2,3,4,5                1,2,3,4,6
a,b,c,d,e                11,12,3,4,5
a,b,c,d,e                11,122,3,4,15
a,b,c,d,e                01,2,3,4,6
a,b,c,d,e
11,12,3,4,5
11,12,3,4,15
01,2,3,4,5

我使用以下命令进行比较:
compare-object (gc test1.csv) (gc test2.csv) -SyncWindow 1

输出为:
InputObject                                                 SideIndicator
-----------                                                 -------------
1,2,3,4,6                                                   =>
1,2,3,4,5                                                   <=
11,12,3,4,5                                                 =>
a,b,c,d,e                                                   <=
11,122,3,4,15                                               =>
a,b,c,d,e                                                   <=
a,b,c,d,e                                                   <=
a,b,c,d,e                                                   <=
11,12,3,4,5                                                 <=
11,12,3,4,15                                                <=
01,2,3,4,6                                                  =>
01,2,3,4,5                                                  <=

看起来对于前三行,该命令只是逐行进行比较,然后继续仅在文件1中存在的行,最后对01,2,3,4,6行进行比较

我只是想知道为什么它在处理了前3行后就不继续第四行,是否有任何规则考虑文件2中的01,2,3,4,6与文件1中的01,2,3,4,5类似?如果是这样,为什么输出不是:
InputObject                                                 SideIndicator
-----------                                                 -------------
1,2,3,4,6                                                   =>
1,2,3,4,5                                                   <=
a,b,c,d,e                                                   <=
a,b,c,d,e                                                   <=
a,b,c,d,e                                                   <=
a,b,c,d,e                                                   <=
11,12,3,4,5                                                 =>
11,12,3,4,5                                                 <=
11,122,3,4,15                                               =>
11,12,3,4,15                                                <=
01,2,3,4,6                                                  =>
01,2,3,4,5                                                  <=

最佳答案

我看到您正在使用SyncWindow参数,这就是该命令表现为“奇怪”的原因。 Compare-Object文档描述了参数的功能,如下所示:



如果省略该参数,该命令将按预期比较对象。

但是当查看带有参数的示例时,我看不到任何逻辑解释。

关于powershell - 在逐行比较情况下使用Compare-Object的逻辑是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20369144/

10-13 07:46
查看更多