PowerShell处理竖线分隔文本:提取ID/护照号至单列的需求
PowerShell处理竖线分隔文本:填充空ID列
嘿,作为PowerShell新手,这个需求其实用Import-Csv配合简单的条件判断就能轻松搞定,我给你写好命令并拆解说明,保证你能看懂:
完整命令
# 替换成你的实际输入、输出文件路径 $inputFile = "你的输入文件路径.txt" $outputFile = "你的输出文件路径.txt" Import-Csv -Path $inputFile -Delimiter '|' | ForEach-Object { # 判断id_number是否为空,为空则取passportnumber的值,否则保留id_number if ([string]::IsNullOrEmpty($_.id_number)) { $_.passportnumber } else { $_.id_number } } | Out-File -Path $outputFile -Encoding UTF8
命令拆解说明
Import-Csv -Delimiter '|':把竖线分隔的文本文件当成CSV格式导入,PowerShell会自动用第一行的列名(membercode、id_number、passportnumber)把每行数据转换成带对应属性的对象,这样我们能直接通过$_.列名调用每一列的值。ForEach-Object:遍历每一行数据,对每一行执行后续的判断逻辑。[string]::IsNullOrEmpty($_.id_number):检查当前行的id_number字段是否为空/空白,能覆盖所有空值场景。- 输出逻辑:如果
id_number为空,就输出passportnumber的值;否则直接输出id_number的值。 Out-File -Encoding UTF8:把最终结果写入指定文件,指定UTF8编码可以避免中文或特殊字符乱码问题。
小提示
记得把命令里的文件路径替换成你实际的路径哦~
内容的提问来源于stack exchange,提问作者Riaaz Jeena
相关产品推荐
相关产品推荐

