【问题标题】:Powershell csv remove linesPowershell csv 删除行
【发布时间】:2013-08-02 11:35:39
【问题描述】:

我有一个 CSV 文件 (file1),它看起来像:(用户目录和大小)

Initials,Size    
User1,10    
User2,100    
User3,131
User4,140

我有另一个 CSV 文件 (file2),它看起来像:(VIP 用户)

User2    
User4

现在我要做的是更新file1,所以它看起来像:

User1,10    
User3,131

User2User4 被删除,因为它们在 file2

我可以删除它们,但同时我删除了所有用户的大小,所以我的输出只有用户:

User1    
User3

我的代码:

$SourcePath = "\\server1\info\SYSINFO\UsrSize"    
$DestinationFile = "\\server1\info\SYSINFO\UsrSize\OverLimit\UsersOverLimit1.log"    
$VIP_Exclusion_List = "\\server1\info\SYSINFO\UsrSize\OverLimit\_VIP_EXCLUSION_LIST.txt"    
$Database = "\\server1\info\SYSINFO\UsrSize\OverLimit\_UsersOverLimitDATABASE.log"    
$INT_SizeToLookFor = 100    

dir $SourcePath -Filter usr*.txt | import-csv -delimiter "`t"  | 
Where-Object {[INT] $_."Size excl. Backup/Pst" -ge $INT_SizeToLookFor} |
Select-Object Initials,"Size excl. Backup/Pst" | convertto-csv -NoTypeInformation | % { $_ -replace '"', ""} | out-file  $DestinationFile   ;

$Userlist = import-csv $DestinationFile | Select-Object Initials | 
convertto-csv -NoTypeInformation | % { $_ -replace '"', ""};

compare-object ($Userlist) (get-content $VIP_Exclusion_List) |
select-object inputObject | convertto-csv -NoTypeInformation |
% { $_ -replace '"', ""} | out-file "\\server1\info\SYSINFO\UsrSize\OverLimit\UsersOverLimitThisTime.log";

【问题讨论】:

  • 在这里找到部分答案:stackoverflow.com/questions/15579316/… 现在我只需要找到一种方法将其再次导出为 CSV 文件
  • out-file 工作正常 :-) 当网站允许我添加完整的新代码时。
  • export-csv 是用于创建 CSV 文件的 Cmd-Let。

标签: powershell csv


【解决方案1】:

如果文件很小并且您不太关心性能,那么以下方法将是一种简单的方法:

$data = Import-Csv file1
$vips = Import-Csv file2
$data = $data | ?{ $vips -notcontains $_.Initials }
$data | Export-Csv file1_new -NoTypeInformation

一种更快的方法是将要删除的名称添加到集合中,但鉴于您在这里谈论的内容,我怀疑您会进入几千或几百万用户的范围。

【讨论】:

    【解决方案2】:

    我用这段代码解决了这个问题:

    $ArrayVIP = 获取内容 $VIP_Exclusion_List 选择字符串 $DestinationFile -pattern $ArrayVIP -notmatch | 选择 - 展开行 | 输出文件 $DestinationFile

    取自这里:Removing lines from a CSV

    【讨论】:

      猜你喜欢
      • 2020-11-24
      • 2016-06-05
      • 1970-01-01
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多