powershell - 对 csv 文件进行排序并删除指定给列的旧行
问题描述
我在文件“script.csv”中有一个如下的csv
author,Revision,Path
abc,9947,spc.sql
xyz,9806,lmn.sql
xyz,9810,lmn.sql
xyz,9897,file.sql
def,9811,test1.rdl
def,9813,test1.rdl
我正在尝试删除重复的行并且具有较旧的修订版。文件“script.csv”中的新输出应如下所示。
author,Revision,Path
abc,9947,spc.sql
xyz,9810,lmn.sql
xyz,9897,file.sql
def,9813,test1.rdl
我尝试了下面的代码并击中了
$inputFile = 'D:\script.csv'
$inputCsv = Import-Csv $inputFile | Sort-Object * -Unique
解决方案
一种可能的解决方案是Sort-Object
结合使用Group-Object
$csv = ConvertFrom-Csv "author,Revision,Path
abc,9947,spc.sql
xyz,9806,lmn.sql
xyz,9810,lmn.sql
xyz,9897,file.sql
def,9811,test1.rdl
def,9813,test1.rdl"
$csv | Sort-Object -Property author,Path,Revision -Descending | Group-Object author,Path | foreach {
$_.Group[0]
}
输出:
author Revision Path
------ -------- ----
xyz 9810 lmn.sql
xyz 9897 file.sql
def 9813 test1.rdl
abc 9947 spc.sql
推荐阅读
- java - Jetty 9 嵌入式 SSL 需要 12 分钟才能启动
- angular - 使用与我的实际文化信息不同的小数分隔符
- linux - 在 linux 中每次启动时使用命令启动 vnc-server
- mysql - 具有hasMany关系的递归查询
- sql - 使用 OR 子句的 SQL 查询性能
- eclipse - 片段包未激活
- c# - 数据库备份不成功
- php - SQL Query 在没有 WHERE 的情况下工作,但是一旦我添加 WHERE 语句,它就无法正常运行
- c - 使用 const 复合文字的元素初始化静态变量
- vue-storefront - 向 vue-storefront 提交新模块有什么要求?