我已经弄清楚如何使用 Bash 将日期添加到文件的开头。问题是我2020.12.09 - filename
历史上所有文件都使用该格式并且更喜欢它。我的命令添加了标准格式的日期2020-12-09filename
。我希望用句号替换破折号,并在日期和文件名之间添加带有空格的破折号。
任何帮助表示赞赏。谢谢你!
答案1
如果您可以编辑初始程序,请查看date
手册页
date '+%Y.%m.%d' # --> 2020.12.09
为了重命名现有文件:
prename 's/(\d{4})-(\d{2})-(\d{2})/$1.$2.$3 - /' 20*
在某些 Linux 发行版中prename
称为rename
答案2
这对我有用:
mv 12-34-5.txt 12\.34\.5.txt
语法是:mv
<old name>
<new name>
答案3
我怀疑您正在生成这样的日期:
$ date -Idate
2020-12-09
您可以通过管道将其sed
替换-
为.
使用:
$ date -Idate | sed 's/-/./g'
2020.12.09
然后你可以重命名你的文件:
mv "$file" $(date -Idate | sed 's/-/./g')\ -\ "$file"
因为这有点冗长,你可以在中创建一个函数~/.bashrc
:
function add-date {
mv "$1" $(date -Idate | sed 's/-/./g')\ -\ "$1"
}
现在来演示它的工作原理:
$ touch file1
$ ls
file1
$ add-date file1
$ ls
'2020.12.09 - file1'