我正在编写shell脚本。我想从文件名中提取日期。
文件名是: abcd_2014-05-20.tar.gz
abcd_2014-05-20.tar.gz
我想从中提取日期: 2014-05-20
2014-05-20
echo abcd_2014-05-20.tar.gz |grep -Eo '[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}'
输出:
grep以echostdin 输入,或者cat如果文件中包含这些字符串,也可以使用command。
grep
echo
cat
-E 将PATTERN解释为扩展的正则表达式。
-E
-o 仅显示匹配PATTERN的匹配线部分。
-o
[[:digit:]] 它将仅从输入中获取数字。
[[:digit:]]
{N}它将检查给定字符串中的N个数字, 即: 4表示年份2表示月份和日期
{N}
最重要的是,它将在不使用任何分隔符(例如“ _”和“”)的情况下进行获取。 这就是为什么它是最灵活的解决方案。