regex - 无法使用正则表达式获取输出

标签 regex linux bash

这可能很愚蠢,但我无法获得所需的输出。

我在目录中有一个名为 Abc_sfgf_kjwefgk.txt20180929_040845 的文件。

我正在尝试使用以下命令列出文件: ls -l Abc_sfgf_kjwefgk.txt[0-9]{8}_[0-9]{4}

但它给我错误:ls: cannot access 'Abc_sfgf_kjwefgk.txt[0-9]{8}_[0-9]{4}': No such file or directory

同时,使用此命令:ls -l Abc_sfgf_kjwefgk.txt[0-9]*?_[0-9]*?

它给了我正确的结果。

我的初始命令有什么问题?

最佳答案

您的 SECOND 命令似乎一切正常。这里你正确使用globbing .

如果你想解析ls,那么你应该像这样使用smth:

ls | grep -E 'Abc_sfgf_kjwefgk.txt[0-9]{8}_[0-9]{4}'

关于regex - 无法使用正则表达式获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52567717/

相关文章:

bash - if [[ $# -ge 1 ]] 在 shell 脚本中是什么意思

linux - bash脚本中带有特殊字符的参数

javascript - 为什么我的日期验证正则表达式不能识别二月(和其他)?

javascript - 用于将缩进行转换为代码块的正则表达式

javascript - jQuery 验证图像扩展大小写

c - 无法让子进程相互通信

linux - 将信息保存为一系列管道中间的变量

ruby - 用户输入 - 路径自动完成

javascript - 正则表达式匹配两个字符串之间的数字在JS中不起作用

c++ - 使用 autotools 安装前缀