如果可能的话,我正在寻找一个 bash one liner,它连接一个文件夹中标记为 motif<number>.motif
的所有文件。进入 output.txt
文件。
我有几个问题正在努力解决。
答:<number>
文件名中包含的长度可以是一位或两位数,我不知道如何使用正则表达式(或类似的东西)来获取所有包含一位或两位数的文件。我可以使用以下方法分别获取包含一位或两位数字的文件名:
motif[0-9].motif
或 motif[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/