脚本 – 从shell脚本中的文件名开始的年月日

前端之家收集整理的这篇文章主要介绍了脚本 – 从shell脚本中的文件名开始的年月日前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有如下文件
adn_DF9D_20140515_0001.log
adn_DF9D_20140515_0002.log
adn_DF9D_20140515_0003.log
adn_DF9D_20140515_0004.log
adn_DF9D_20140515_0005.log
adn_DF9D_20140515_0006.log
adn_DF9D_20140515_0007.log

我想从文件名中获取年,月,日并创建目录

例:[[! -d“$BASE_DIR / $year / $month / $day”]]&& mkdir -p“$BASE_DIR / $year / $month / $day”;

如何实现这一点,并分享想法/脚本欣赏你

如果文件名在示例中总是如此,则可以使用以下内容
for x in *.log; do year=${x:9:4}; month=${x:13:2}; day=${x:15:2}; [[ ! -d "$year/$month/$day" ]] && mkdir -p "$year/$month/$day"; done

这个子字符串提取在bash中可用,不确定其他shell.

猜你在找的Bash相关文章