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

Extracting filenames containing one or more numbers then cat contents to output file

如果可能,我正在寻找一个 bash 单行文件,它将文件夹中标记为 motif<number>.motif 的所有文件连接到一个 output.txt 文件中。

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

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

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

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

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

假设我有 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