100000cpds_ligand_00001.pdbqt
我在名为,的目录中有数千个扩展名为 .pdbqt 的 txt 文件100000cpds_ligand_00002.pdbqt
,100000cpds_ligand_*****.pdbqt
并且想根据其内容中的唯一标识符重命名它们。
标识符REMARK Name = PV-000009607404
以单行形式给出,其中PV-000009607404
可以是可变长度、文本和数字(例如ZINC001248485427
,等)。我只想将标识符部分保留在文件名中,而不是REMARK Name =
部分。所以,我会例如更改100000cpds_ligand_00001.pdbqt
为PV-000009607404.pdbqt
. 我可以从命令行做到这一点,但我想使用一个小脚本。
非常感谢您的帮助!
我做了一个应该只复制文件而不是重命名的例子。评论指出了一些逻辑。我不是 bash 专家,但我在文件上对此进行了测试。
您应该在与源文件相同的目录中创建此文件,并将其命名为
pdbqt-mover.sh
.要么通过键入调用它,
bash pdbqt-mover.sh
要么您必须设置文件的权限,以便您可以使用./pdbqt-mover.sh
.使用 grep 和一个名为 RANGER 的终端文件浏览器很容易做到这一点。首先使用 grep 拉出包含文件名的行。例如
编辑 fnlist 并去掉“REMARK NAME =”的冗余字符串。您现在有了一个干净的新文件名列表。
启动 Ranger,导航到包含文件的目录并执行批量重命名操作。出现时粘贴 nflist 的内容,您就完成了。