gpt4 book ai didi

awk - 使用 awk 在小脚本中将月份从 Aaa 转换为 xx

转载 作者:行者123 更新时间:2023-12-03 03:11:25 25 4
gpt4 key购买 nike

我正在尝试报告每个日期创建的文件数量。我可以用这个小衬垫做到这一点:

ls -la foo*.bar|awk '{print $7, $6}'|sort|uniq -c

我得到了按日期创建了多少个 fooxxx.bar 文件的列表,但月份的格式为:Aaa(即:4 月),我想要 xx(即:04)。

我感觉答案就在这里:

awk '
BEGIN{
m=split("Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec",d,"|")
for(o=1;o<=m;o++){
months[d[o]]=sprintf("%02d",o)
}
format = "%m/%d/%Y %H:%M"
}
{
split($4,time,":")
date = (strftime("%Y") " " months[$2] " " $3 " " time[1] " " time[2] " 0")
print strftime(format, mktime(date))
}'

但我不知道我需要去掉什么,也不知道如何将 7 美元传递给我从中提取的任何内容,以将 Apr 转换为 04。

谢谢!

最佳答案

以下是将缩写月份名称转换为 awk 中的数字的惯用方法:

$ echo "Feb" | awk '{printf "%02d\n",(index("JanFebMarAprMayJunJulAugSepOctNovDec",$0)+2)/3}'
02

$ echo "May" | awk '{printf "%02d\n",(index("JanFebMarAprMayJunJulAugSepOctNovDec",$0)+2)/3}'
05

如果您需要更多信息来解决您的问题,请告诉我们。

关于awk - 使用 awk 在小脚本中将月份从 Aaa 转换为 xx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10109974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com