我在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
。因此,由于每天都在传递文件,因此无法在我编写的任何命令中对日期进行硬编码。任何帮助将不胜感激
答案 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 ...