我正在研究 shell 脚本。我想从文件名中提取日期。
文件名为:abcd_2014-05-20.tar.gz
我想从中提取日期:2014-05-20
最佳答案
echo abcd_2014-05-20.tar.gz |grep -Eo '[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}'
输出:
2014-05-20
grep
以 echo
标准输入获得输入,或者如果文件中有这些字符串,您也可以使用 cat
命令。
-E
将 PATTERN 解释为扩展的正则表达式。
-o
仅显示与 PATTERN 匹配的匹配行的一部分。
[[:digit:]]
它只会从输入中获取数字。
{N}
它将检查给定字符串中的 N 个数字,即:年份为 4,月份和日期为 2
最重要的是,它会在不使用任何分隔符(如“_”和“.”)的情况下进行抓取。这就是为什么它是最灵活的解决方案。
关于linux - 使用 shell 脚本从 unix 中的文件名中提取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26881104/