Powershell从excel列中删除数字,保留文本

时间:2015-09-17 23:30:45

标签: excel powershell csv

我想从第1列和第2列中的csv文件中删除一些数字,但不删除3。

基本上我需要删除六个号码 - 即删除“000001 - ”并从第1列和第2列留下“OfficeFramework”,但保留所有其他文本。

我在excel csv文件中的数据是:

Column1                     | Column2                       | Column3
000001 - OfficeFramework    | 002924 - Edition              | Standard
000001 - OfficeFramework    | 002925 - Install Type         | Server
000001 - OfficeFramework    | 002926 - Version              | v4.3.00
000001 - OfficeFramework    | 002927 - Audit Trail Enabled  | FALSE

我需要它看起来像:

Column1         | Column2               | Column3
OfficeFramework | Edition               | Standard
OfficeFramework | Install Type          | Server
OfficeFramework | Version               | v4.3.00
OfficeFramework | Audit Trail Enabled   | FALSE

到目前为止,我有:

get-content "H:\Compare\Results\test\servername_SystemInfo.csv" | 
    % { $_.split('*.-')[-1].trim()} | 
             set-content "H:\Compare\Results\test\new.csv"

但是我只返回两列,因为它删除了第1列并返回:

newcolumn1          | newcolumn2 
Edition             | Standard
Install Type        | Server
0                   |
Audit Trail Enabled | FALSE

感谢您的帮助,

1 个答案:

答案 0 :(得分:1)

如果您只想删除该号码,可以使用-replace,例如:

Get-Content yourFileName.csv | % { $_ -replace '\d*\s-\s', '' } | Set-Content yourFileName2.csv

或者,如果它总是为6位数,您可以将*替换为{6}