如何将以下bash脚本转换为在Windows上运行完美的东西?

时间:2017-02-24 13:20:25

标签: windows bash powershell

for i in `cut -d, -f 2 some_file.csv | uniq | tr -d "\""`; do grep -w $i some_file.csv > some_file_$i.csv; done

基本上我现在在Linux工作站上运行它,但是我需要将它传递给使用Windows工作站的非技术人员。即使我不是Windows管理员,也不知道如何在Windows“脚本”中运行它。任何帮助将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

PowerShell支持CSV解析就好了,试试Import-Csv cmdlet:

Import-Csv some_file.csv -Header 1,2 |Select-Object -ExpandProperty 2 |Sort-Object -Unique

Import-Csv将解析文件,并发出一个对象(每行),其中包含两个属性:12,对应于文件中的第一列和第二列。

Select-Object语句将从2属性中获取值并丢弃其余值。

Sort-Object -Unique将对列值进行排序并删除重复项

答案 1 :(得分:1)

在PowerShell中,您可以通过识别字段对记录进行分组并分别导出每个组来拆分CSV:

void Main ()
    {
        var dict = new Dictionary<string,object>();
        dict.Add("ReuestedBy",abc);
        var innerDict = new Dictionary<string,object>();
        var list = new LIst<Dictionary<string,object>>();
        innerDict.Add("UpdatedRecords","45");
        innerDict.Add("Id","1");
        innerDict.Add("IsValid","False");
        dict.Add("Changes",list )
    }

请注意,您需要知道该字段的名称。如果您想要按第二个字段进行拆分而不管其名称(我不推荐),您需要先确定该字段的名称。我打算把它作为读者的练习。