从文件名UNIX中删除日期

时间:2017-07-17 18:40:34

标签: unix

我在UNIX工作并尝试编写以下命令。我每天都会收到一个源文件,其文件名格式为:

ONSITE_EXTR_ONSITE_EXTR_20170707. 

由于我每天都会收到一个文件,因此文件名会根据当前日期而改变,所以ONSITE_EXTR_ONSITE_EXTR_20170708, ONSITE_EXTR_ONSITE_EXTR_20170709 etc.我需要从文件名中删除日期并将其重命名为ONSITE_EXTR_ONSITE_EXTR.我有完成了我需要做的任何数据读取和处理,我需要将文件名更改回ONSITE_EXTR_ONSITE_EXTR_20170707。因此,由于每天都在传递文件,因此无法在我编写的任何命令中对日期进行硬编码。任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

根据您的工具链,这可能就像运行一样简单:

$ mv ONSITE_EXTR_ONSITE_EXTR_$(date +%Y%m%d) ONSITE_EXTR_ONSITE_EXTR

...在运行脚本的其余部分之前,假设您正在使用类似Bash的shell。

话虽如此,您可以在尝试访问文件时将ONSITE_EXTR_ONSITE_EXTR_$(date +%Y%m%d)放入脚本中。

这都是假设脚本在下载文件的同一天和同一时区运行。

答案 1 :(得分:0)

如果您使用的是 bash ,并且您在变量中有文件名,则可以执行以下操作:

IN="ONSITE_EXTR_ONSITE_EXTR_20170707"
echo ${IN:0:23}

给出ONSITE_EXTR_ONSITE_EXTR

谷歌搜索提供各种指南here ...