我有一个csv,我希望在一个名为"art“的列中为每个唯一值提取10行PowerShell。在唯一的艺术价值已经被确定后,我需要那些值的精csv文件。我写的代码对我没有用。
If (Test-Path D:\WORK\JetLetter\TPL\TPL_SNAP\data\TPL_Mailer.csv){
$source=Get-ChildItem "D:\WORK\JetLetter\TPL\TPL_SNAP\data\TPL_Mailer.csv" | select -Last 1
$csvFile = 'D:\WORK\JetLetter\TPL\TPL_SNAP\data\TPL_Mailer.csv'
$arttag = Import-Csv $csvFile | Group-Object | Select-Object "art" -Force
Export-csv $arttag
}我得到的错误是:
Select-Object : A parameter cannot be found that matches parameter name 'Force'.
At line:5 char:62
+ $arttag = Import-Csv $csvFile | Group-Object | Select-Object -Force
+ ~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Select-Object], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.SelectObjec
tCommand
Export-Csv : Cannot validate argument on parameter 'Path'. The argument is null or empty.
Provide an argument that is not null or empty, and then try the command again.
At line:6 char:12
+ Export-csv $arttag
+ ~~~~~~~
+ CategoryInfo : InvalidData: (:) [Export-Csv], ParameterBindingValidationExcepti
on
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.E
xportCsvCommand导入的csv将有多个具有名称、地址、art标记和序列号的行。
sequence art last first address city st zip
1 3S Doe John 123 Any Street AnyTown CA 12345
11 OG Dow Jane 124 Any Street AnyTown CA 12346
21 OGF Cool Joe 125 Any Street AnyTown CA 12347
31 SLV Cool Carol 126 Any Street AnyTown CA 12348
41 SMP Bravo Johnny 127 Any Street AnyTown CA 12349无论数据中有哪些现有列,我都需要导出一个csv,其中包含每个art值的10行。
任何帮助都将不胜感激。
我修改了脚本,使它更简单,但我没有看到我需要的结果。
$source=Get-ChildItem 'D:\WORK\JetLetter\TPL\TPL_SNAP\data\TPL_Mailer.csv' | select -Last 1
$csvFile = 'D:\WORK\JetLetter\TPL\TPL_SNAP\data\TPL_Mailer.csv'
import-csv $csvFile | Select-Object -Property 'art' -Unique | export-csv 'D:\WORK\JetLetter\TPL\TPL_SNAP\data\art_proofs.csv' -NoTypeInformation我得到的是:
art
APS
DWS我需要每一列与每个艺术行的标题。我正在寻找的是一种方式过滤的艺术标签和导出过滤的结果。进口的csv可有1000至40万份记录。例如:
sequence art last first address city st zip
1 3S Doe John 123 Any Street AnyTown CA 12345
2 OG Dow Jane 124 Any Street AnyTown CA 12346
3 OGF Cool Joe 125 Any Street AnyTown CA 12347
4 SLV Cool Carol 126 Any Street AnyTown CA 12348
5 SMP Bravo Johnny 127 Any Street AnyTown CA 12349
6 3S Doe John 128 Any Street AnyTown CA 12350
7 OG Dow Jane 129 Any Street AnyTown CA 12351
8 OGF Cool Joe 130 Any Street AnyTown CA 12352
9 SLV Cool Carol 131 Any Street AnyTown CA 12353
10 SMP Bravo Johnny 132 Any Street AnyTown CA 12354
11 3S Doe John 133 Any Street AnyTown CA 12355
12 OG Dow Jane 134 Any Street AnyTown CA 12356
13 OGF Cool Joe 135 Any Street AnyTown CA 12357
14 SLV Cool Carol 136 Any Street AnyTown CA 12358
15 SMP Bravo Johnny 137 Any Street AnyTown CA 12359
16 3S Doe John 138 Any Street AnyTown CA 12360
17 OG Dow Jane 139 Any Street AnyTown CA 12361
18 OGF Cool Joe 140 Any Street AnyTown CA 12362
19 SLV Cool Carol 141 Any Street AnyTown CA 12363
20 SMP Bravo Johnny 142 Any Street AnyTown CA 12364输出文件应该如下所示:
sequence art last first address city st zip
1 3S Doe John 123 Any Street AnyTown CA 12345
6 3S Doe John 128 Any Street AnyTown CA 12350
2 OG Dow Jane 124 Any Street AnyTown CA 12346
7 OG Dow Jane 129 Any Street AnyTown CA 12351
3 OGF Cool Joe 125 Any Street AnyTown CA 12347
8 OGF Cool Joe 130 Any Street AnyTown CA 12352
4 SLV Cool Carol 126 Any Street AnyTown CA 12348
9 SLV Cool Carol 131 Any Street AnyTown CA 12353
5 SMP Bravo Johnny 127 Any Street AnyTown CA 12349
10 SMP Bravo Johnny 132 Any Street AnyTown CA 12354如您所见,文件已被过滤到art列中每个值的2行。首先,导入csv需要按art列排序,然后筛选到每个art值2行。
发布于 2022-11-01 17:36:52
通过查看您的输出,您似乎看到了组,的艺术列,然后从每个组中选择前2个对象并输出它们。为此,您可以使用Group-Object和Select-Object相结合。
例如,给出问题中的示例,并使用以下代码:
Import-Csv path\to\csv.csv | Group-Object art |
ForEach-Object { $_.Group | Select-Object -First 2 } |
Export-Csv path\to\export.csv -NoTypeInformation产出如下:
sequence art last first address city st zip
-------- --- ---- ----- ------- ---- -- ---
1 3S Doe John 123 Any Street AnyTown
6 3S Doe John 128 Any Street AnyTown
2 OG Dow Jane 124 Any Street AnyTown
7 OG Dow Jane 129 Any Street AnyTown
3 OGF Cool Joe 125 Any Street AnyTown
8 OGF Cool Joe 130 Any Street AnyTown
4 SLV Cool Carol 126 Any Street AnyTown
9 SLV Cool Carol 131 Any Street AnyTown
5 SMP Bravo Johnny 127 Any Street AnyTown
10 SMP Bravo Johnny 132 Any Street AnyTownhttps://stackoverflow.com/questions/74239188
复制相似问题