如何在包含名称列表的 file.txt 上循环?

How to Loop on a file.txt containing a list of names?

我正在使用 MacOS

我正在尝试通过 fimo 工具注释转录因子基序。 我需要 运行 对多个 Motifs --motif $line 名称包含在文件 MotifsList.txt 上进行 fimo。 为了工作,fimo 需要访问 [=] 旁边的 2 个其他文件(file.memefile.fa) 67=]一个。 我会 运行 使用包含脚本的生成的 file.sh 来自 命令行 的所有内容。 所有需要的文件; .txt、.sh、.meme 和 .fa 存储在名为 Motifs_analysis 的同一文件夹中。 我希望将输出 Resultfile 保存在同一张 cd 中。

  1. MotifsList.txt 文件中的行数:
MOTIF BU0001.Arid3a_primary
MOTIF MA0151.1 Arid3a
MOTIF MA0601.1 Arid3b
MOTIF ARNT_HUMAN.H11MO.0.B
....
  1. file.sh 包含脚本的文件:
#!/bin/bash
while IFS= read -r line || [[ -n $line ]]; do
    fimo --thresh 1e-4 --no-qvalue --max-stored-scores 10000000 --motif $line --text file.meme genome.fa > ResultFile
done < 
  1. 命令行 输入以启动 bash 作业:
cd /Users/myho2345/Desktop/Motifs_analysis
chmod +x file.sh
./file.sh MotifsList.txt

*错误:

zsh: ./file.sh: bad interpreter: /bin/bash^M: no such file or directory

脚本不正确。我哪里做错了?

最好,非常感谢您的帮助!!!!

^M在DOS文件系统中是一个回车-return字符,它是“不可见的”。

2 个要修复的选项:

# Option 1
dos2unix file.sh

# Option 2
sed -i 's/\r//g' file.sh