合并或重命名文件

合并或重命名文件

我在目录中有一个文件列表,它们被命名为:

2.pdb
3.pdb
14.pdb
...
200.pdb
...
1240.pdb

我想按照这个特定的顺序组合所有这些。当我使用

cat *pdb > pdb_all.txt 

它似乎只是进行随机组合(或者也许它会从所有以数字 1 开头的文件开始(无论是 1、10 还是 1000)。我可以让这个命令按特定顺序组合我的文件吗,或者我是否将所有文件重命名为包含 4 位数字(例如 0002、0003、0014 等)。我怀疑后者是最简单的方法,但如何mv在 Mac 上使用该命令执行此操作?

答案1

最简单的方法就是重命名文件并添加前导零。您可以在 Mac 的终端中执行此操作,如下所示:

for a in *.pdb; do mv $a `printf %05d.%s ${a%.*} ${a##*.}`; done

在此示例中,我设置每个数字应包含 5 位数字。因此 1.pdb 将重命名为 00001.pdb。但是,您可以将其降低到 4 或满足您需求的任何数字。

祝你好运!

编辑

为了使其与pdbid.1后缀一起工作,这是答案:

for a in *.pdbid.1; do mv $a `printf %05d.%s ${a%.*.*} ${a#*.}`; done

答案2

我将使用 find、sort 和 xargs 的组合来实现这样的目标。

find ./ -name "*.pdb" | sort -n | xargs cat > pdb_all.txt

相关内容