从UNIX文件名中删除日期

从UNIX文件名中删除日期,unix,Unix,我正在UNIX中工作,试图编写以下命令。我每天都会收到一个源文件,其文件名的格式如下: ONSITE_EXTR_ONSITE_EXTR_20170707. 由于我每天都会收到一个文件,文件名会根据当前日期更改,因此site\u EXTR\u site\u EXTR\u 20170708,现场\u EXTR\u现场\u EXTR\u 20170709等。我需要将文件名中的日期去掉,并将其重命名为现场\u EXTR\u现场\u EXTR。在我完成需要执行的任何数据读取和处理后,我需要将文件名更改

我正在
UNIX
中工作,试图编写以下命令。我每天都会收到一个源文件,其文件名的格式如下:

ONSITE_EXTR_ONSITE_EXTR_20170707. 

由于我每天都会收到一个文件,文件名会根据当前日期更改,因此
site\u EXTR\u site\u EXTR\u 20170708,现场\u EXTR\u现场\u EXTR\u 20170709等。
我需要将文件名中的日期去掉,并将其重命名为
现场\u EXTR\u现场\u EXTR。
在我完成需要执行的任何数据读取和处理后,我需要将文件名更改回
现场\u EXTR\u现场\u 201707
。因此,由于文件每天都在发送,我无法用我编写的任何命令硬编码日期。非常感谢您提供的任何帮助

根据您的工具链,这可能与运行以下命令一样简单:

$ mv ONSITE_EXTR_ONSITE_EXTR_$(date +%Y%m%d) ONSITE_EXTR_ONSITE_EXTR
。。。在运行脚本的其余部分之前,假设您使用的是类似Bash的shell

话虽如此,在尝试访问文件时,您只需将
现场\u EXTR\u现场\u EXTR\u$(日期+%Y%m%d)
插入脚本即可


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

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

IN="ONSITE_EXTR_ONSITE_EXTR_20170707"
echo ${IN:0:23}
提供现场外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部外部


谷歌提供了各种各样的指南…

您正在使用哪种基于unix的操作系统?你用的是什么外壳?你可以使用什么工具链?嗨,朱尔斯,这很有效,是一个好的开始。所以在我运行这个命令之后,会发生什么呢?它会被我的软件接收,并对文件进行一些数据处理。在我完成这个过程之后(很明显,这个过程是什么并不重要),我如何用日期将文件名更改回原始文件名?感谢您的帮助,您必须将当前日期存储在一个变量中,您可以在以后第二次重命名文件时访问该变量。如果您可以保证文件处理将在同一天完成,您可以将参数反转为原始的
mv
调用。不过,这感觉就像是一种情况,您只需首先使用
site\u EXTR\u site\u EXTR\u$(date+%Y%m%d)
访问文件,就可以生成更可读的代码。