Powershell用于添加列,删除行和填充CSV文件中的文本

时间:2017-02-18 06:58:51

标签: powershell csv

这里的总Powershell noob。请帮忙!

我有一个如下所示的CSV文件:

Office,First Name,Last Name,email
Pancacke Group,Lidia,Gheno,lidiapancackes@yahoo.com
Miller Tracy Carmel Valley,Paulina,Mastros,paulina@gmail.com

我需要使用powershell方法使它看起来像这样:

,,,Pancacke Group,Test,Lidia,Gheno,lidiapancackes@yahoo.com
,,,Miller Tracy Carmel Valley,Test,Paulina,Mastros,paulina@gmail.com

总结需求:

  1. 在第一列Office
  2. 之前添加三列
  3. 在Office和名字之间添加另一列
  4. 使用单词Test
  5. 在Office和名字之间填写列
  6. 使用标题删除第一行
  7. 提前感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

Import-Csv file.csv | Select-Object "col1", "col2", "col3" , Office, "col4", "First Name", "Last Name", email | Export-Csv file.csv -NoTypeInformation

在一个衬垫上方,在开始处预先设置三列,在办公室和名字之间设置一列。下一步删除第一行:

Get-Content file.csv | select -Skip 1 | out-file file.csv

这两个步骤都是一行:

Import-Csv file.csv | Select-Object "col1", "col2", "col3" , Office, "col4", "First Name", "Last Name", email | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1 | out-file file.csv

希望这就是你想要的。

答案 1 :(得分:0)

解决方案1 ​​

import-csv "C:\temp\test\test.csv" | 
    select col1, col2, col3, Office, @{N="Col4";E={"Test"}}, 'First Name', 'Last Name', email | 
        ConvertTo-Csv -NoTypeInformation | 
            select -skip 1 | 
                out-file "C:\temp\test\result.csv"

答案 2 :(得分:0)

解决方案2

get-content "C:\temp\test\test.csv" |
    %{$Cols=$_ -split "," ;  ",,,{0},Test,{1},{2},{3}" -f $Cols[0],$Cols[1],$Cols[2],$Cols[3]} | 
        out-file "C:\temp\test\result.txt"