【发布时间】:2020-06-07 05:53:56
【问题描述】:
我是 shell 脚本的新手,我正在尝试从具有格式日期的 csv 列中获取星期几:
16/10/2015
19/06/2010
16/09/2013
4/7/2008
29/12/2017
我使用 date -%A 并将结果转换但不是全部转换,但仍然收到带有结果的错误消息:
date: invalid date ‘16/10/2015’
date: invalid date ‘19/06/2010’
date: invalid date ‘16/09/2013’
Monday
date: invalid date ‘29/12/2017’
Monday
预期输出:
Friday
Saturday
Monday
Wednesday
Friday
我的代码:
cat file.csv | awk -F "," 'NR>1 {print $4}' | awk -F, '{"date +%A -d\""$1 "\""| getline dte;$1=dte}1' OFS=","
我还尝试在转换之前将值重新格式化为日期类型,以确保但仍然收到错误消息,我有一个大数据文件,这就是为什么我试图在 awk 中循环整个列
【问题讨论】:
-
您能否通过在问题中提及预期输出示例来添加更多详细信息,然后让我们知道。
-
我用预期的输出更新了我的帖子
-
首先将
16/10/2015转换为2015/10/16。
标签: shell csv date awk date-arithmetic