我有一个清单,看起来是这样的:
10.0139_ssrn.3771318
10.1001_archdermatol.2012.418
10.1001_archinte.165.15.1737
10.1001_archinte.165.15.1743
10.1001_archinte.165.18.2142
10.1001_archinternmed.2012.127
我还有另一个清单,看起来是这样的:
123 10.0139_ssrn.3771318
356 10.1001_archdermatol.2012.418
357 10.1001_archinte.165.15.1737
6 10.1001_archinternmed.2012.127
379 10.1001_archopht.123.1.25
12 10.1001_archoto.2010.121
97 10.1001_archotol.127.1.25
第二个列表不包含第一个列表中的所有项,反之亦然。
我想创建一个仅包含匹配项的文件,如下所示:
123 10.0139_ssrn.3771318
356 10.1001_archdermatol.2012.418
357 10.1001_archinte.165.15.1737
6 10.1001_archinternmed.2012.127
我可以使用PowerShell中的以下命令以我想要的方式提取各行:
Get-Content 'Y:\folder\second_list.csv' | foreach {
$_ -match "10.0139_ssrn.3771318"}| Out-File 'Y:\folder\10.0139_ssrn.3771318'
我没有设法编写一个从第一个文件中提取条目的循环。我试过这样的方法:
Get-Content 'Y:\folder\second_list.csv' | foreach {
$line -contains (Get-Content "Y:\folder\first_list.csv")| Out-file "Y:\folder\output.csv" -append}
有两个问题:第一,没有识别出匹配项(尽管应该有一些匹配项),第二,输出文件中的条目总是“假”(而不是Second_list的匹配行,或者如果没有找到匹配项,则根本没有条目)。
2条答案
按热度按时间gr8qqesn1#
我制作了两个样例文件:test1.csv:
Est2.csv:
然后循环文件1中的所有项,并检查它们是否出现在文件2中:
Output.csv的内容:
wgxvkvu92#
尝试以下操作:
以下是输出