首页 > 解决方案 > 比较 2 个文件之间的列并使用 Powershell 删除非常用列

问题描述

我在文件夹 A 中有一堆文件,在文件夹 B 中有相应的元数据文件。我想遍历数据文件并检查元数据文件中的列是否相同,(因为传入的数据文件可能在任何职位,恕不另行通知)。如果两个文件中的列匹配,则不采取任何措施。如果数据文件的列多于元数据文件,则应从传入的数据文件中删除这些列。任何帮助,将不胜感激。谢谢!

数据文件为 ps_job.txt

“empid”|”name”|”deptid”|”zipcode”|”salary”|”gender”</p>

“1”|“汤姆”|”10″|”11111″|”1000″|”M”</p>

“2”|”安”|”20″|”22222″|”2000″|”F”</p>

元数据文件是 ps_job_metadata.dat

“empid”|”name”|”zipcode”|”salary”</p>

我希望我的输出是

“empid”|”name”|”zipcode”|”salary”</p>

“1”|“汤姆”|”11111″|”1000″</p>

“2”|“安”|”22222″|”2000″</p>

标签: windowspowershell

解决方案


如果您想保留这些花引号并且您的代码页和控制台字体支持所有字符,您可以执行以下操作:

# Create array of properties delimited by |
$headers = (Get-Content .\ps_job_metadata.dat -Encoding UTF8) -split '\|'
Import-Csv ps_job.dat -Delimiter '|' -Encoding utf8 | Select-Object $headers

推荐阅读