我有一个很长的txt文件t1.txt。例如,我有以下文本:
"2019-03-11T12:20:22.330Z"
plenty of text ...
"2019-03-11T12:20:43.082Z"
plenty of text ...
我想重新格式化日期戳,使其类似于
Day of the week
time (as in 13.48 for example)
plenty of text ...
这完全可以用bash做到吗?
答案 0 :(得分:2)
抢救Perl:
perl -MTime::Piece -pe 's/^"([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2})\.[0-9]+Z"$/
Time::Piece->strptime($1, "%Y-%m-%dT%H:%M:%S")->strftime("%A\n%H:%M")
/e' -- t1.txt
-p
逐行读取输入并在处理后打印每一行-M
使用一个模块,Time::Piece是处理基本时间解析和格式化的核心模块s/PATTERN/REPLACEMENT/
是类似于sed的替代/e
修饰符将REPLACEMENT部分解释为代码并运行它strptime
解析时间,格式详细信息可以在man strptime
strftime
格式化时间,其中%A
是全日名称,\n
是换行符,%H
代表小时,%M
代表分钟< / li>