通过powershell删除特定色谱柱

j9per5c4  于 2022-11-29  发布在  Shell
关注(0)|答案(1)|浏览(154)

我想删除[公司]:IT测试列。但没有成功。
输入CSV文件:

[Company]:IT Test,[CompanyXYZ]:IT Test12,[CompanyXY]:IT Test222
data11,tst11,user11
data23,tst44,user44

我期望的输出:

[CompanyXYZ]:IT Test12,[CompanyXY]:IT Test222
tst11,user11
tst44,user44

脚本:

Import-Csv 'C:\input.csv' -Delimiter "," | Select * -ExcludeProperty '[Company]:IT Test' |
    Export-Csv "c:\output.csv" -Delimiter "," -Encoding UTF8 -notypeinfo
91zkwejq

91zkwejq1#

通过查看Select-Object Cmdlet的源代码,ExcludeProperty的值在执行匹配之前首先被编译为通配符模式。请参阅此处源代码的相关部分。
根据官方的about_Wildcards文档,powershell支持以下通配符集。
| 通配符|项目名称|范例|符合|无匹配项|
| - -|- -|- -|- -|- -|
| * |匹配零个或多个字符a*| aA、ag|苹果公司|香蕉|
| ?|匹配该位置的一个字符|?n| an,in,on|已运行|
| [内容提要]|匹配字符范围|看|书、做饭、看|采取了|
| [内容提要]|匹配特定字符|看|烹饪书|钩住|
| *| 匹配任何字符作为文字(非通配符)|12英尺 *4英寸|12个 *4个|小行星一千二百三十四| 由于[ ]是通配符模式语法的一部分,因此需要使用'对其进行转义,以便与[]`进行字面匹配

select * -ExcludeProperty '`[Company`]:IT Test'

相关问题