bash - 根据 bash 脚本中的名称有选择地创建文件夹

标签 bash loops for-loop ubuntu-20.04

我有几个文件,名称如下:

dosulepin3D_CID_5284550.pdbqt
protriptyline3D_CID_4976.pdbqt

这些是小分子。现在,我想在 Results 文件夹中为每个分子创建一个文件,忽略它们后面的 3D_CID_5284550.pdbqt,并且文件夹名为:

dosulepin
protriptyline

我想使用 for 循环来执行此操作,因为我还使用这些文件执行一些功能。这就是我所拥有的:

DIR="/home/roy/MolecularDocking/VirtualScreening/Dockings"
cd $DIR
for ligand in ligands/*; do
    echo $ligand
    mkdir "/home/roy/MolecularDocking/Results/$ligand"
done;

但这显然会创建具有全名的文件夹。

最佳答案

类似这样的事情。

DIR="/home/roy/MolecularDocking/VirtualScreening/Dockings"
cd "$DIR" || exit

for ligand in ligands/*.pdbqt; do
    echo "$ligand"
    echo mkdir -p "/home/roy/MolecularDocking/Results/${ligand%3D*}"
done

如果您对输出满意,请从 mkdir 中删除 echo

参见Parameter Expansion了解更多详情。

关于bash - 根据 bash 脚本中的名称有选择地创建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67841000/

相关文章:

linux - 即使在添加到 sudoers 后关机也会要求输入密码

Javascript 循环遍历列表不起作用

Java:for 循环,不兼容的类型

python - 从列表中删除旧元素

linux - 使用 for 循环 Linux 创建图形

java - 创建一个计算字符串中元音的数组

linux - 捕获 bash 命令的输出,解析它并存储到不同的 bash 变量中

regex - 提取文件中两个目录条目之间的所有文本

linux - 在生产环境中运行 CLI 时保持密码抽象

javascript - 如何在循环中为 jQuery 函数的变量设置动画?