小编BCA*_*Arg的帖子

xargs 与带有多个占位符的 bash -c 相结合

我正在组合ls,xargsbash -c在多个输入文件上运行特定程序(其名称与模式匹配barcode0[1-4].fastq

我调用的程序xargs称为krocus,下面是我用来使用单个占位符调用该程序的代码(对于多个输入文件):

ls barcode0[1-4].fastq |cut -d '.' -f 1|xargs -I {} bash -c "krocus --verbose --output_file out_krocus/{}_Ecoli1.txt /nexusb/Gridion/MLST_krocus_DBs/e_coli1 {}.fastq
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我的占位符是我想在 ie 上调用 krocus 的文件barcode0[1-4].fastq。我现在想添加第二个占位符,它将传递给--kmerkrocus 的参数。对于这个参数,我想传递数字seq 12 14,即 12、13 和 14。在本例中,我想创建总共 12 个文件(这意味着我想组合四个--kmer输入文件的三个值)

下面是我想象的带有参数占位符的代码的样子kmer

ls barcode0[1-4].fastq |cut -d '.' -f 1|xargs -I {} bash -c "krocus --verbose --output_file out_krocus/{placeholderForInputFile}_{placeholderForKmerSize}Ecoli1.txt /nexusb/Gridion/MLST_krocus_DBs/e_coli1 --kmer {placeholderForKmerSize} {placeholderForInputFile}.fastq
Run Code Online (Sandbox Code Playgroud)

问题是我需要通过管道传输两个命令的输出,即ls barcode0[1-4].fastqseq …

ls bash pipe xargs

3
推荐指数
1
解决办法
699
查看次数

使用 xargs 将 `ls` 输出重定向到另一个命令

在我正在处理的目录中,我有两个扩展名为 的文件.sam

PD180425_aligned_minimap.sam
PD180793_aligned_minimap.sam
Run Code Online (Sandbox Code Playgroud)

对于这两个文件中的每一个,我都需要应用如下所示的命令:

samtools view -Sb pattern.sam > pattern.bam
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用xargs它。我想要做的是在之前捕获前缀_aligned_minimap并使用它来保存到我的输出。我尝试的是以下内容:

ls *.sam | cut -d "_" -f 1 | xargs -i samtools view -Sb {}_aligned_minimap.sam > {}_aligned_minimap.bam
Run Code Online (Sandbox Code Playgroud)

我希望必须生成 iePD180425_aligned_minimap.bamPD180793_aligned_minimap.bam. 尽管我的命令正在运行,但我在我正在处理的目录中看到该文件{}_aligned_minimap.bam已生成,这表明我尝试使用 xargs ( PD180425and PD180793)捕获的输入不起作用。

我该怎么做呢?

pipe io-redirection xargs bioinformatics

1
推荐指数
1
解决办法
1283
查看次数

标签 统计

pipe ×2

xargs ×2

bash ×1

bioinformatics ×1

io-redirection ×1

ls ×1