【问题标题】:Add Column to csv osx将列添加到 csv osx
【发布时间】:2016-01-18 17:42:43
【问题描述】:

最近我从 windows 切换到了 osx,我正在努力寻找自动化一些我曾经使用 Windows Power Shell 执行的任务的最佳方法。

我曾经在 power shell 中运行一个脚本来在 csv 文件中添加和填充列

Import-Csv z:\myfile.csv | Select-Object @{Name='ACTION';Expression={''}},*,@{Name='COUNTRY';Expression={'UNITED KINGDOM'}} | Export-Csv z:\output.csv -NoTypeInformation

如您所见,这会在 csv 中添加 2 列,并使用 United Kingdom 填充 Country。

我也曾经从一个批处理文件中运行它,该文件会创建带有日期的文件夹并在删除原始文件之前将创建的文件放入其中。

我的问题是在 osx 中实现这一目标的最佳/最有效的方法是什么?

我看过并认为它可能是 awk,我尝试过使用 automator,但没有取得太大成功。

感谢您的建议。

【问题讨论】:

  • Powershell 在 SO 上的表现并没有那么好,而且似乎大多数回答者都在 BATCH 中做出了答复......在这种情况下,您可能会更好地展示您的文件在之前和之后的外观过程,因为这里的每个人都可以与之相关。一般来说,在 OSX 上,Automator 和 Applescript 都非常冗长,我建议您使用 bashawksedPerl,因为这些技能可以移植到 Linux 和 OSX。无论如何,展示之前和之后,我相信有人会帮忙。

标签: macos csv awk automation


【解决方案1】:

假设第一行是标题,如果不删除标题1!

sed '1!s/$/,,UNITED KINGDOM/' z:\myfile.csv > z:\output.csv

它添加到每一行的末尾,除了第一行,尾随,,UNITED KINGDOM

【讨论】:

  • 我明白了,是否可以使标题 COUNTRY 然后填充 UNITED KINGDOM 的值?还是这需要 2 个命令?
  • 可以在同一个 sed 命令中执行至少 2 个操作。在这里它保留标题并在其他行的末尾添加 UNITED
猜你喜欢
  • 1970-01-01
  • 2013-06-05
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多