【问题标题】:Escape Comma in Date Command Bash for CSV File [duplicate]CSV 文件的日期命令 Bash 中的转义逗号 [重复]
【发布时间】:2019-04-10 01:15:53
【问题描述】:

我正在尝试使用此命令在 CSV 文件中将创建 aws 用户的日期转换为对用户更友好的格式。我试过了:

aws_user_friendly_date=$(date --date "$aws_user_create_date" '+%B %d\\, %Y')
aws_user_friendly_date=$(date --date "$aws_user_create_date" '+%B %d\, %Y')

我想注释掉逗号,以便在 CSV 文件中正确格式化。

但它不起作用,我得到这个作为输出:

AWS Account Creation Date: June 15\\, 2017
AWS Account Creation Date: June 15\, 2017

如果我留下逗号以使其不被转义,CSV 文件会将年份放入它自己的列中。如何正确显示转义逗号,以免混淆 CSV 文件?

【问题讨论】:

  • 您不会在 csv 中转义分隔符,而是封装包含分隔符的字段;通常用双引号。因此,在您的 CSV 中,它看起来像 "AWS Account Creation Date: June 15, 2017",这不是您的 date 命令需要担心的事情。而是在将其推送到 CSV 时担心它。

标签: bash csv date


【解决方案1】:

在许多 CSV 方言中,反斜杠只是一个常规字符,不会转义任何内容。将文字逗号放在字段中的方法是将字段值用双引号括起来。

aws_user_friendly_date=$(date --date "$aws_user_create_date" '+"%B %d, %Y"')

总体上更好的设计可能是以适当的机器可读形式存储日期,并仅在需要显示时将其转换为人类可读的友好格式。

【讨论】:

    猜你喜欢
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    相关资源
    最近更新 更多