powershell - 如何在powershell中打开一个csv并复制其中一列,所以我现在有两列具有相同的数据,但名称不同?
问题描述
我有一个使用 import-csv 命令导入的 csv,如下所示:
emailAddress, event, tokenDate, Yadda1, Yadda2
aaaa@bbb.com, A1234, 23/03/2020, 98765, 54321
bbbb@ccc.com, B2345, 23/03/2020, 87654, 32109
cccc@ddd.com, C3456, 23/03/2020, 76543, 21098
我有导入 csv 的代码,不包括我不想要的一些列(yadda1,yadda2),然后重命名它导入的标题。
导入和重命名后,我的代码将 status_date 列数据更改为 unixtime 格式,并且效果很好。
我现在需要做的是添加一个名为“status_date2”的新列,其中包含与每一行的status_date完全相同的数据,所以如果第50行的status_date包含unixtime值1584370028,那么第50行的新status_date2需要现在也保存值 1584370028。
我试图做这样的事情,我认为它只是取 status_date 的值,但是 status_date2 列一直是空的 - 请帮助!!!
@{Name='status_date2';Expression={$_."status_date"}}
代码如下所示:
Import-Csv "c:\temp\myCSV.csv" |
Select * -ExcludeProperty "emailAddress", "event", "tokenDate" |
# Rename the column headers, for exmaple: rename from emailAddress to email_address
select -Property @{label="email_address";expression={$($_."emailAddress")}},
@{label="status";expression={$($_."event")}},
@{label="status_date";expression={$($_."tokenDate")}},
#Replace the date column data with unixtime format
% {$_.status_date = (Get-Date($_.status_date) -UFormat %s); $_} |
# Add a new column with current date/time is unixtime format for the CRM
@{Name='status_date2';Expression={Get-Date -UFormat %s}} |
解决方案
您可以只进行两次相同的计算(对于仅翻译字段,您可以简单地将名称指定为Expression
值):
Import-Csv "c:\temp\myCSV.csv" |Select -Property @{Label="email_address";Expression="emailAddress"},
@{Label="status";Expression="event"},
@{Label="status_date";expression={Get-Date $_."tokenDate" -UFormat %s}},
@{Label="status_date2";expression={Get-Date $_."tokenDate" -UFormat %s}}
推荐阅读
- postgresql - 子查询存在 - 返回单列
- php - HTTPS 使我的页面无法正常运行,而 HTTP 使我的页面正常运行
- openlayers - 有默认样式吗?
- python-3.x - 尝试将 pyspark DataFrame 写入镶木地板时出现 Py4JJavaError
- javascript - 根据表单中的选择单选按钮隐藏 div
- reactjs - 使用动态键值对切换状态时遇到问题
- java - 如何停止包含阻塞操作的线程?
- ansible - 想要在 YAML 中的多行文本中添加空格
- reactjs - Redux Saga 似乎在进行未知的 API 调用?
- odoo-11 - 如何在 Odoo-11 中设置多个公司在同一个会计科目表上工作?