bash - 从多个文件中删除时间戳
问题描述
有没有一种快速而聪明的方法可以从具有不同名称的多个文件中删除各种时间戳?时间戳格式始终保持不变,尽管值不同。我的文件的一个例子是......
A_BB_CC_20180424_134312
A_B_20180424_002243
AA_CC_DD_E_20180424_223422
C_DD_W_E_D_20180423_000001
与预期的输出
A_BB_CC
A_B
AA_CC_DD_E
C_DD_W_E_D
请注意,最后一个文件具有不同的时间戳,我不介意这是删除特定日期的时间戳还是全部或两个变体。我的问题是我想不出时间值不断变化的代码:(
提前致谢
编辑 - 添加编辑以显示为什么这不是 Tripleee 认为的重复。他的重复链接是针对具有相同前缀的文件,我的问题是关于具有不同名称的文件,所以答案是不同的。
解决方案
使用删除文件名末尾的参数扩展%%
bash ism:
for i in /my/path/*; do mv "$i" "${i%%_2018*}"; done
这取决于以2018...
使用 awk:
for i in /my/path/*; do mv "$i" $(awk -v FS=_ 'NF-=2' OFS="_" <<< "$i"); done
此awk
脚本基于字段分隔符_
。它打印文件名,没有最后 2 个字段表示时间戳。
推荐阅读
- javascript - 我如何传递从另一个模型获取的角色数组以在 laravel 中注册表单
- oracle - oracle OCI 获取数据有空白字符
- python - 模型和工厂的一个真相来源
- css - 容器环绕 CSS Grid 中最高的孩子
- mongodb - 类型“任务”不满足约束“文档”
- docker - 赛普拉斯运行后清理问题
- mongodb - 为什么 NumberLong(9007199254740993) 从 mongo shell 匹配 MongoDB 中的 NumberLong(9007199254740992)?
- reactjs - 反应材料表填充下拉
- php - Chrome 上的 Base64 编码图像无法在 Laravel 上正确保存
- nuxt.js - Nuxt 和 fetch 挂钩:未定义属性或方法“$fetchState”