![合并或重命名文件](https://linux22.com/image/869309/%E5%90%88%E5%B9%B6%E6%88%96%E9%87%8D%E5%91%BD%E5%90%8D%E6%96%87%E4%BB%B6.png)
我在目录中有一个文件列表,它们被命名为:
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