regex - 提取包含一个或多个数字的文件名,然后将 cat 内容提取到输出文件

标签 regex linux bash numbers cat

如果可能的话,我正在寻找一个 bash one liner,它连接一个文件夹中标记为 motif<number>.motif 的所有文件。进入 output.txt文件。

我有几个问题正在努力解决。

答:<number>文件名中包含的长度可以是一位或两位数,我不知道如何使用正则表达式(或类似的东西)来获取所有包含一位或两位数的文件。我可以使用以下方法分别获取包含一位或两位数字的文件名:

motif[0-9].motifmotif[0-9][0-9].motif

但不知道如何将所有文件列在一起。

B:我的第二个问题是我事先不知道目录中会有多少文件,所以我只能使用一个数字范围来选择文件。此命令位于长管道的中间。

假设我有 20 个文件夹:

motif1.motif motif2.motif ... motif19.motif motif20.motif

我需要 cat >>把它们全部的内容写成output.txt .

最佳答案

你可以这样做:

cat motif{[0-9],[0-9][0-9]}.motif > output

或使用 extglob:

shopt -s extglob nullglob
cat motif[0-9]?([0-9]).motif > output

关于regex - 提取包含一个或多个数字的文件名,然后将 cat 内容提取到输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48545394/

相关文章:

linux - 树莓派2 : routing table has no the specified gateway

windows - 查找域名的IP

regex - 在 bash 中使用 SED 打印 RegEx 匹配项

unix - 在 Bash 脚本中重新加载环境变量

用于字符串的 PHP 正则表达式 preg_match_all

javascript - 满足以下所有示例的更经济的正则表达式 :

linux - 如何使用Linux软件看门狗?

java - 动态字符串的正则表达式

regex - 使用 Regex 重命名文件名并使用 powershell 删除之后的所有内容

bash - 将嵌套 bash 脚本减少为单个文件/mpirun 命令