我想创建一个自动服务,以从文件名中的日期更改文件的创建日期。
文件名:“ 2014-02-02 lorem Ipsum.md”或“ lorem Ipsum.md 20190828719”。
如果有一种方法可以将两者都构建到一个服务中,那将是惊人的,但是两个也可以。不在乎时间,只是在约会。
#Note: Filename = "2014-02-02 Lorem Ipsum.md"
$ BASENAME=$(basename $f)
$ TITLE=${BASENAME%.*}
$ echo "$TITLE" | cut -d" " -f1
2014-02-02
Lorem
Ipsum
$ #TOUCH - Something
我假设我将使用某种方式for f
do
done
遍历所有选定文件。
您可以使用sed
格式化时间并将其分配给touch
:
for i in *.md; do
touch -d $(sed 's/[^0-9]//g;s/^\(.\{8\}\).*/\1/' <<< "$i") "$i"
done
在sed
正则表达式中删除所有无数字字符,只需要前8其余字符。
该-d
的选项touch
设置修改时间给定日期。此选项可能是特定于GNU的选项,在macosx系统上不可用。
在macosx上,您可以使用以下命令SetFile
(点数:此处):
for i in *.md; do
SetFile -d $(sed 's/[^0-9]//g;s/\(.\{4\}\)\(.\{2\}\)\(.\{2\}\).*/\1\/\2\/\3 00:00:00/' <<< "$i") "$i"
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句