首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Slurm作业在使用more时生成神秘的冒号字符串

Slurm作业在使用more时生成神秘的冒号字符串
EN

Stack Overflow用户
提问于 2019-01-03 02:58:15
回答 1查看 40关注 0票数 2

我试图在一组文件上运行一些生物信息学软件,但当我使用slurm提交它时,该工具意外失败,显然是由于输入文件列表的错误传递。如果我在命令行中运行它,它似乎可以工作。我已经替换了下面的一些玩具文件名,因为实际的文件名非常长。该工具名为rMATs,但该工具本身与我的问题无关。

我使用.sbatch文件从命令行将作业提交到集群,如下所示:

代码语言:javascript
复制
sbatch job.sbatch group1.txt group2.txt

其中两个文本文件包含逗号分隔的数据文件列表。在.sbatch文件中,我将变量传递给生物信息学工具,如下所示:

代码语言:javascript
复制
#!/bin/bash
#SBATCH --time=00:00:20
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH -o ./o.%j
#SBATCH --err ./e.%j
#SBATCH --account=owner-guest
#SBATCH --partition=server-guest

bioinfotool.py -arg1 `more group1.txt` -arg2 `more group2.txt`

我之所以这样做,是因为生物信息学工具显然无法直接解析文本文件。

然而,它仍然不能工作,我认为这是由于我使用了反引号和更多的命令。我尝试通过添加echo语句进行调试

代码语言:javascript
复制
echo `more group1.txt`

输出应为

代码语言:javascript
复制
sample1.bam,sample2.bam,sample3.bam

然而,实际的输出是

代码语言:javascript
复制
:::::::::::::: group1.txt :::::::::::::: sample1.bam,sample2.bam,sample3.bam

因此,在我看来,这个莫名其妙的逗号字符串+文件名+逗号字符串在传递给生物信息学工具之前被放在了我的文件列表的前面。

谷歌像“逗号字符串”+slurm这样的东西都是徒劳的,所以我求助于发布我自己的问题。

这些逗号是从哪里来的?有没有更好的方法从txt文件中提取文件名字符串?

谢谢

编辑:使用“cat”而不是“more”来解决问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-03 03:12:52

more是一个交互式程序,您看到的冒号很可能是more用来表示它需要用户输入的冒号。

如果您只想转储文件内容,则cat是您需要的:。

代码语言:javascript
复制
bioinfotool.py -arg1 `cat group1.txt` -arg2 `cat group2.txt`

您还可以直接从终端cat group1.txt运行此命令,以查看您得到了预期的结果。

请注意,在Bash这样的Bourne shell中,您可以使用$(cat group1.txt)而不是使用反引号,这允许嵌套和更多选项,但这在您的用例中应该无关紧要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54011729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档