提取包含一个或多个数字的文件名,然后将 cat 内容提取到输出文件
Extracting filenames containing one or more numbers then cat contents to output file
如果可能,我正在寻找一个 bash 单行文件,它将文件夹中标记为 motif<number>.motif
的所有文件连接到一个 output.txt
文件中。
我有几个问题正在努力解决。
答:文件名中包含的 <number>
可以是一位或两位数,我不知道如何使用正则表达式(或类似的东西)来获取所有包含一位或两位数的文件.我可以使用以下方法分别获取包含单位数或双位数的文件名:
motif[0-9].motif
或 motif[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
如果可能,我正在寻找一个 bash 单行文件,它将文件夹中标记为 motif<number>.motif
的所有文件连接到一个 output.txt
文件中。
我有几个问题正在努力解决。
答:文件名中包含的 <number>
可以是一位或两位数,我不知道如何使用正则表达式(或类似的东西)来获取所有包含一位或两位数的文件.我可以使用以下方法分别获取包含单位数或双位数的文件名:
motif[0-9].motif
或 motif[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