首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据日期范围创建一组文件

根据日期范围创建一组文件
EN

Stack Overflow用户
提问于 2017-11-18 00:34:50
回答 1查看 82关注 0票数 0

您将如何在Bash中执行几行代码来完成以下工作。我正在努力提高我的Bash技能,并学习如何从命令行处理更多的小任务目录。

步骤:

  1. 指定开始日期和结束日期。将包括开始日期和结束日期在内的所有日期加载到“列表”中。
  2. 循环列表,每次创建这样的文件。(需要日期格式) 2017年-11-10周2017年-11-11周-11-12周
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-18 04:59:21

您可以将输入日期转换为Unix时间戳,然后添加每天的秒数,并touch一个以结果命名的文件,直到超过结束日期为止:

代码语言:javascript
运行
复制
#!/bin/bash

startstamp=$(date -d "$1" +'%s')
endstamp=$(date -d "$2" +'%s')

secs_per_day=$(( 24 * 3600 ))

for (( thedate = startstamp; thedate <= endstamp; thedate += secs_per_day )); do
    touch "$(date -d "@$thedate" '+%F.w')"
done

%s格式字符串( GNU扩展)打印自Unix时代以来的秒数,-d选项的参数中的@表示日期是该格式的。%F%Y-%m-%d的缩写,意思是YYYY DD.

示例用法:

代码语言:javascript
运行
复制
$ ./dates 2017-11-10 2017-11-15
$ ls -1
2017-11-10.w
2017-11-11.w
2017-11-12.w
2017-11-13.w
2017-11-14.w
2017-11-15.w
dates
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47361257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档