我很少使用 UNIX,所以如果这似乎是一个简单的问题,我深表歉意。我正在尝试遍历子目录和文件,然后从循环抓取的特定文件生成输出,然后将输出通过管道传输到另一个目录中的文件,该目录的名称可以从输入文件中识别出来。到目前为止,我有:
for file in /home/sub_directory1/samples/SSTC*/
do
samtools depth -r chr9:218026635-21994999 < $file > /home/sub_directory_2/level_2/${file}_out
done
我希望从 sub_directory1/samples/SSTC*/ 中的 file_1_novoalign.bam 生成输出,并将该输出作为名为 file_1_novoalign_out.bam 的输出文件发送到 /home/sub_directory_2/level_2/ 但是它不起作用 - 它说' bash:/home/sub_directory_2/level_2/file_1_novoalign.bam.out:没有这样的文件或目录。
理想情况下,我希望能够剥离 outfile 的“_novoalign.bam”部分并替换为“_out.txt”。我相信这对于普通的 unix 用户来说会很容易,但我已经搜索过,但找不到快速答案,也没有时间花很长时间搜索。提前感谢任何基于我到目前为止的代码的建议,或者欢迎任何替代建议。
ps 我无权将文件写入包含输入文件夹的目录