powershell - Powershell + csv:读取第1列,修改内容并将其写在第2列中
问题描述
我在Powershell方面真的不是那么好,只能与很多谷歌研究相处。
我有一个 CSV 文件,第 1 列中有一堆单词。
例如:
Wild
Copy
Hell
Tom
Snow
我想编写一个 Powershell 脚本,它在每一行中读取第 1 列中写入的内容,向其中添加字符并将其写在第 2 列中。
例如:
Coumn1 - Column2
Wild - Wildcat
Copy - Copycat
Hell - Hellcat
Tom - Tomcat
Snow - Snowcat
我真的没有什么几乎可以工作的东西,我有这样的想法:
$CSV = Import-CSV 'c:/Path2CSV'
ForEach ($row in $CSV)
{
$Modified = Column1 + "cat"
write $Modified > column2
}
}
如果有人能给我一个提示,我会很高兴。
预先感谢您的任何回复
解决方案
如果您的输入 csv(只有一列)在值上方有一个标题,请使用
$CSV = Import-CSV -Path 'C:\Path\To\input.csv'
如果这个文件只是一系列单词,每个单词都在自己的行中并且没有标题,请使用
$CSV = Import-CSV -Path 'C:\Path\To\input.csv' -Header Column1
然后,当您在变量 $CSV 中有数据时,循环并创建一个新的 csv:
$newCsv = foreach ($row in $CSV) {
# output an Object that gets collected in variable $newCsv
# Select-Object * takes everything already in $row,
# @{Name = 'Column2'; Expression = {$row.Column1 + 'cat'}} adds the extra column to it.
$row | Select-Object *, @{Name = 'Column2'; Expression = {$row.Column1 + 'cat'}}
}
# output on screen:
$newCsv
# output to new CSV file
$newCsv | Export-Csv -Path 'C:\Path\To\output.csv' -NoTypeInformation
输出(在屏幕上):
Column1 Column2
------- -------
Wild Wildcat
Copy Copycat
Hell Hellcat
Tom Tomcat
Snow Snowcat
有更多方法可以实现你想要的,上面只是尽量接近你建议的伪代码
推荐阅读
- javafx - 为什么程序在 JavaFX 中出现错误?
- python - 运行`python -m unittest -v ...`时出现“源代码字符串不能包含空字节”的错误,但运行`python filename`时没有错误?
- html - 如何让下拉菜单覆盖其他项目
- javascript - 在页面更改或页面刷新时保持主题启用
- java - java - 如何获取传递给Java构造函数的泛型类的字段
- angular - ng-idle-package-accessor-declared-in-ambient-context 角度为 ng-idle 的错误
- javascript - 当您将鼠标悬停在图表 js 中的每个饼图上时,是否可以制作一个盒子阴影?
- python - Iterate through linux sort output in python
- java - 如何在考虑时区差异的同时比较 Java 8 中 2 个日期之间的分钟差异?
- r - 如何为数据框的标题添加值?