问题描述
我有一种情况,如果它包含INC **号而不是整个值,我需要写替换列值
Duration starttime task
3 hours 24-09-2020 @{display_value=INC*****6; link=https://8888.service-8888888888888}
8 hours 23-09-2020 @{display_value=INC*****7; link=https://8888.service-888888888888888}
现在在任务栏中,我必须填写
任务 INC 6 INC 7
实际上,我通过访问serviceNow apis得到了这个csv文件,并使用powershell脚本将有效负载转换为csv文件。有人可以指导我
解决方法
当您从API作为PowerShell对象接收有效负载时,最容易编辑INC######
值。
$payload.task.display_value = $payload.task.display_value -replace '\d(?=\d)','*'
如果必须使用此CSV文件(这不必要),则必须进行一些解析:
# I assumed the delimiter/separator is a tab. Change it to the appropriate character if needed.
$csv = import-csv file.csv -delimiter "`t"
foreach ($row in $csv) {
$row.task = $row.task -replace '(?<=display_value=INC\d*)\d(?=\d)','*'
}
$csv | Export-Csv output.csv -delimiter "`t"
有关正则表达式的解释,请参见Regex。