【问题标题】:Find files in folder which have x digits在文件夹中查找具有 x 位数的文件
【发布时间】:2018-01-17 18:00:03
【问题描述】:

您好必须修正一些文件名以便进一步考虑。 让我们假设我只列出文件名开头有 7 位数字的文件。 例如

8795811-005-2535.txt
8-002-2535.txt
8795814-003-2535.txt
8795511-003-2535.txt
8798-005-2535.txt

我最想得到的是

8795811-005-2535.txt
8795814-003-2535.txt
8795511-003-2535.txt

因为它以 [0-9] 的 7 次出现开始 我如何用

归档这个
 ls | grep '[0-9]'

如何将 7 次出现在正则表达式中?

寻找实用教程或示例……

【问题讨论】:

标签: regex shell grep


【解决方案1】:
ls | grep -E "^[0-9]{7}.*"

-E 让您可以访问扩展的正则表达式选项

正则表达式分解:

^

找到字符串的开头,

[0-9]{7}

然后匹配7位数字,

.*

什么都跟着。

【讨论】:

    【解决方案2】:

    感谢您的建议..

    8795811-005-2535.txt
    ls | grep -E "[0-9]{7}-[0-9]{3}-[0-9]{4}.txt"
    

    确实让我很开心..必须了解更多关于 regec..非常酷的信息。

    【讨论】:

      【解决方案3】:
      for file in [0-9][0-9][0-9][0-9][0-9][0-9][0-9]*; do
          echo "$file"
      done
      

      printf '%s\n' [0-9][0-9][0-9][0-9][0-9][0-9][0-9]*
      

      ls [0-9][0-9][0-9][0-9][0-9][0-9][0-9]*
      

      https://www.gnu.org/software/bash/manual/bashref.html#Pattern-Matching

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-10
        • 2021-05-29
        • 1970-01-01
        • 1970-01-01
        • 2012-08-05
        • 2014-11-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多