我想将文件名“ Domain_20181012230112.csv”更改为“ Domain_12345_20181012230112.csv”,其中“ Domain”和“ 12345”是常量,而20181012230112始终会更改,但具有固定长度。在bash中,我该怎么做
答案 0 :(得分:1)
如果您只想将
return DateTimeUtils.formatAsDateTime(this.startTime.toDate());
替换为Domain_
,则只需
Domain_12345_
如果知道只有一个下划线,则可以将其缩短:
for file in Domain_*;
do
mv "$file" "${file/Domain_/Domain_12345_}"
done
有关更多信息,请参见string substitutions。
答案 1 :(得分:0)
您只需使用date命令即可获取所需的日期和时间信息
date '+%Y-%m-%d %H:%M:%S'
# 2018-10-26 10:25:47
要在文件名中使用结果,可以将其放在``中以对其进行内联评估,例如,可以运行
echo "Domain_12345_`date '+%Y-%m-%d %H:%M:%S'`"
# Domain_12345_2018-10-26 10:29:17
您可以使用日期的手册页找出以毫秒为单位的选项,以很好地添加es。
man date
例如,有%m和%d之类的不同选项,如果有必要,它们总是带有前导零,因此文件名长度保持不变。
要重命名文件,可以使用mv(移动)命令
mv "Domain_20181012230112.csv" "Domain_12345_`date '+%Y-%m-%d %H:%M:%S'`.csv"
其余的练习祝你好运!
答案 2 :(得分:0)
您可以在mv
循环中使用for
,如下所示:
for file in Domain_??????????????.csv ; do ts=`echo ${file} | cut -c8-21`; mv ${file} Domain_12345_${ts}.csv; done
给出示例的一个文件,这实际上将执行此命令
mv Domain_20181012230112.csv Domain_12345_20181012230112.csv