我想使用PowerShell来操作文件。制表符分隔文件如下:
数据部门1 Data1 Sector1
工作部门1 Work1 Sector1
我想查找以“Work”开头的记录,并将“Sector1”替换为“NewVal”。输出应如下所示:
数据部门1 Data1 Sector1
工作 NewVal
Work1 NewVal
我以前可以通过使用以下方法在UNIX中执行此操作: S /工作/扇区1 /的的newval 但我无法弄清楚PowerShell的等价物。
任何帮助将不胜感激。感谢。
答案 0 :(得分:0)
只要您的源文件包含标题列“key”和“value”,以下内容就能完成此操作并写入新的csv文件。请注意,此处的contains方法是与“工作”匹配的区分大小写的模式。
import-csv .\sourcefile.csv | foreach-object {
if (($_.key).contains("Work")) {
$_.value = "NewVal"
}
$_ | export-csv -Append .\newFile.csv -NoTypeInformation
}
答案 1 :(得分:0)
你可以使用RegEx匹配来解决这个问题。
Get-Content C:\ Path \ To \ File.txt | ForEach {$ _ -replace"(?< = ^ Work。*?\ s)Sector1"," NewVal"} | Set-Content C:\ Path \ To \ File.txt