【问题标题】:Create new files in a bash loop basing on a variable name根据变量名在 bash 循环中创建新文件
【发布时间】:2020-08-03 12:57:46
【问题描述】:

我是 bash 环境的新手。我有一个 for loop 迭代文件夹中的文件。循环指令是处理这些文件并将它们保存在预先存在的文件夹(位于工作目录内)中,将此保存的文件重命名为输入文件。代码如下:

for file in '$DIR'*.f* #take just the fasta files
    do command.py $file > $DIR/'translated'/$file
done

但输出如下:

File or directory not existing

我该如何解决这个问题?

【问题讨论】:

  • 注意'$DIR'(单引号)是行不通的:单引号意味着$DIR不会被扩展。
  • @larsks :由于这是对 OP 看到的错误消息的解释,我认为您应该将您的评论作为答案。
  • 嗨@larsks,你是对的,但即使从我的目录变量中删除单引号也是一样的。似乎变量 $file 打印了所有目录(例如 /home..../file.fasta)

标签: bash file directory


【解决方案1】:

我使用相对路径得到了解决方案。 解决方案在这里。

cd $DIR
mkdir ./new_folder
for file in *.f*
do 
    command.py $file > $file.modified
    mafft --auto *translated > $file.mafft
    mv *.modified ./new_folder
done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 2011-08-17
    相关资源
    最近更新 更多