我有大约500个文件,需要使用报告所代表的日期进行重命名。目前的文件名是:Bash - 文件名称更改日期+ 1
WUSR1453722998383.csv
WUSR1453723010659.csv
WUSR1453723023497.csv
等等。文件名中的数字与日期无关,因此我不能使用文件名作为文件应该重命名的指南。报告从2014年12月2日开始,每个月的每一天都有一份报告,直到昨天(09/04/2016)。幸运的是,文件名是连续的 - 所以2014年12月4日的数字要比2014年12月3日的数字更高,这个数字会比2014年12月2日的数字更高。这意味着文件会按字母顺序自动列出。
然而,有在CSV的第一行的日期之前的数据:
As at Date,2014-12-02
现在我已经签,我已经将所有文件和我做,有啥重命名的最佳方式到那个日期?我可以将开始日期设置为02/12/2014,并将每个文件重命名为+1日期,或者脚本可以读取文件第一行的日期(例如As at Date,2014-12-02
),并使用该日期重命名文件。
我不知道如何在bash中编写上述任何一种方法,所以如果你可以帮助解决这个问题,那会非常感激。
在文件输出方面,我希望的:
02-12-2014.csv 03-12-2014.csv
等等
欢迎来到Stack Overflow。请尽快阅读[关于]页面。你是否希望文件按日期顺序列出?因此,使用诸如'WUSR-2014-02-12.csv'(或者'WUSR-20140212.csv')这样的名字会给你名字上的日期?您应该将所需的输出(最终文件名)添加到您的问题中(您可以编辑您的问题)。你需要保留原始号码吗?你怎么检查你有所有的文件?不管你做什么都应该给你一些关于如何在shell脚本中获得你需要的信息的想法。你有什么尝试? –
我使用过:head -q -n 1 * .csv> output.csv来检查我是否拥有所有文件(我使用了输出CSV并将它与从2014年12月12日到昨天的每个日期进行匹配,它们是所有那里)。我假设我可以使用类似这样的方式进行文件重命名(每个CSV的第一行,并使用日期重命名文件),但我不知道如何将它们连接在一起。 .. –
我不明白为什么人们会喜欢这些文件,以便2014年2月14日以及2016年2月14日之后的文件,以及2014年2月15日,2015年2月15日,2016年2月15日之后的文件然而,这是一个普遍的问题 - 为什么会有一些原因,但我确定它主要是潜意识的。 –