regex - 正则表达式交换日期
问题描述
我有许多在名称中包含日期的文件,格式如下:
filename - day month year (e.g. myfile - 22 August 2017)
我想做的是将它的格式设置为:
filename - yearmonthday (e.g. myfile - 20170822)
寻找一种在 bash 中执行此操作的方法。
非常感谢 - 科林
解决方案
使用 bash 参数扩展和(GNU?)日期
$ f="myfile - 22 August 2017"
$ d=${f##* - }; echo "$d"
22 August 2017
$ new_d=$(date -d "$d" "+%Y%m%d")
$ echo mv "$f" "${f/%$d/$new_d}"
mv myfile - 22 August 2017 myfile - 20170822
推荐阅读
- android - 以十六进制显示来自 DB 的图片
- amazon-web-services - 使用 AWS Forecast 预测每位客户
- java - 使用 JNA 从 C++ 访问 Java 终端
- java - 如何解析 Drools 条件中的字符串?
- python - TKinter 意外结果中的帧中帧
- javascript - Node JS 聊天服务器
- apache-spark - 丢弃不良记录并仅将良好记录从 pyspark 中的 json 文件加载到数据帧
- php - 在 php 中使用 trim 我想使用两个条件或一组条件来修剪?
- angular - 清晰度 - 动态数据网格
- android - 如何在按下 EditText 时阻止 Scrollview 将背景图像移动到顶部?