我有一个相当愚蠢的问题:)
我有一个CSV,例如:
"test","bla","monkey","test3"
1,2,3,4
4,3,2,1
我正在导入变量,例如$ data 我怎样才能过滤第一行 - 例如,我只想用名称中的" test *拉回行条目?
谢谢!
答案 0 :(得分:2)
即使您没有需要按摩的现有代码,也会根据某些假设发布答案。
假设您没有听到行,为列数指定任意数字并加载到名为$csv
$csv = Import-Csv C:\Temp\test.csv -Header @(1..4)
现在使用$csv
变量并进行查询以将结果返回到$ data变量中,您可以说出它们匹配的位置“第一列中的测试”
$data = $csv | ? { $_.1 -match "test"}
$data
中存储的结果现在应如下所示。
1 2 3 4
- - - -
test bla monkey test3
答案 1 :(得分:0)
我使用的是PowerShell v3,没有任何内容可循,所以我只列出抓住第一行的最简单方法。
$csv = Import-Csv c:\test\test.csv
$csv[0]
这将返回$ csv对象中的第一项,Import-Csv默认将第1行识别为标题,如果标题行不存在则需要使用-Header标志。
答案 2 :(得分:0)
感谢大家的投入。我意识到我对所需内容的解释过于简化和过于模糊。我实际上想要获取标题行的名称,以便我可以按包含特定单词的标题进行过滤。所以这是有效的:
$csv = Import-Csv c:\temp\test.csv
$filteredResults = ($csv | get-member | ?{$_.Name -like "*test*"}).Name
返回变量:
test
test3