linux - 使用 shell 脚本从 unix 中的文件名中提取日期

标签 linux bash shell unix grep

我正在研究 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

grepecho 标准输入获得输入,或者如果文件中有这些字符串,您也可以使用 cat 命令。

-E 将 PATTERN 解释为扩展的正则表达式。

-o 仅显示与 PATTERN 匹配的匹配行的一部分。

[[:digit:]] 它只会从输入中获取数字。

{N} 它将检查给定字符串中的 N 个数字,:年份为 4,月份和日期为 2

最重要的是,它会在不使用任何分隔符(如“_”和“.”)的情况下进行抓取。这就是为什么它是最灵活的解决方案。

关于linux - 使用 shell 脚本从 unix 中的文件名中提取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26881104/

相关文章:

linux - 如何使用 upstart 启动具有实时优先级 (jackd) 的进程?

ios - 如何从 Xcode 项目中删除未使用的图像?

linux - SHA-256 测试向量

linux - 这有可能覆盖linux之类的复制系统吗?

linux - 无法使用 ssh 运行包含 * 的脚本

linux - 使用 bash 脚本遍历包含域的文本文件

linux - 读取 'for' 循环中的完整行,带空格,带多个输入文件的制表符

sql - 在文件 shell 中捕获 sql 查询结果

linux - IO 重定向到另一个文件

带双引号的 Ruby shell 命令