awk - 如何获取数据,然后通过 wk 将其转换为日期特定的行?
问题描述
我需要将前六个值转换为日期EPOCH OF CURRENT MAP
我还没有理解awk的逻辑。
文件如下...
2018 1 2 0 0 0 EPOCH OF CURRENT MAP
Data
2018 1 2 1 0 0 EPOCH OF CURRENT MAP
Data
2018 1 2 2 0 0 EPOCH OF CURRENT MAP
Data
2018 1 2 3 0 0 EPOCH OF CURRENT MAP
Data
2018 1 2 4 0 0 EPOCH OF CURRENT MAP
Data
2018 1 2 5 0 0 EPOCH OF CURRENT MAP
Data
2018 1 2 6 0 0 EPOCH OF CURRENT MAP
...
我试过
awk '/EPOCH OF CURRENT MAP/ {printf "%s %s %s %s %s %s\n", $1,$2,$3,$4,$5,$6}' codg0010.18i
输出日期格式应为日、缩月日、年时:分:秒但不包括“EPOCH OF CURRENT”
02-Jan-2018 00:00:00
02-Jan-2018 01:00:00
02-Jan-2018 02:00:00
...
解决方案
使用 GNUawk
$ awk '/EPOCH OF CURRENT MAP/{print strftime("%d-%b-%Y %H:%M:%S",mktime($1" "$2" "$3" "$4" "$5" "$6))}' file
02-Jan-2018 00:00:00
02-Jan-2018 01:00:00
02-Jan-2018 02:00:00
02-Jan-2018 03:00:00
02-Jan-2018 04:00:00
02-Jan-2018 05:00:00
02-Jan-2018 06:00:00
推荐阅读
- python-3.x - 是否可以使用python截取文件内容的屏幕截图
- google-api - 尝试使用 Python 的库在 GAPI Drive v3 中按文件 ID 查询时出错
- java - 尽管使用正确的输出编写了正确的代码,但仍获得 WA
- curl - curl:(6)无法解析主机:在 WSL 上
- linux - RPM post scriptlets 权限被 docker 命令拒绝
- azure-devops - 用于创建管道的 Azure Devops REST API 与源提供程序 bitbucket 不工作
- java - 提取名称,用双引号括起来从字符串到列表
- javascript - 特定用户的前端切换功能标志
- c# - 无法创建“AppDbContext”类型的对象
- javascript - Python socket.io ack 函数