首页 > 解决方案 > CSV 文件的日期命令 Bash 中的转义逗号

问题描述

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

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 文件?

标签: bashcsvdate

解决方案


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

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

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


推荐阅读