由于双引号与 OFS="\t" 的双引号并行冲突,命令失败。有什么建议可以使它起作用吗?谢谢!
ls *bed | parallel -j 10 "intersectBed -a good-genes.gff -b {} -c | awk 'BEGIN{OFS="\t";} {print $1,$9,$4,$5,$7,$10}' > test.txt"
由于双引号与 OFS="\t" 的双引号并行冲突,命令失败。有什么建议可以使它起作用吗?谢谢!
ls *bed | parallel -j 10 "intersectBed -a good-genes.gff -b {} -c | awk 'BEGIN{OFS="\t";} {print $1,$9,$4,$5,$7,$10}' > test.txt"
由于您有“外部”双引号,因此您也会遇到 awk$
变量的问题。我会把它分成几块:
awk_body='BEGIN{OFS="\t";} {print $1,$9,$4,$5,$7,$10}'
ls *bed | parallel -j 10 "intersectBed -a good-genes.gff -b {} -c | awk '$awk_body' > test.txt"
GNU Parallel 只需引用部分脚本即可:
ls *bed | parallel -j 10 intersectBed -a good-genes.gff -b {} -c \| awk \''BEGIN{OFS="\t\";} {print $1,$9,$4,$5,$7,$10}'\' > test.txt
(引用最后一个 > 将导致竞争条件,因为所有正在运行的作业都将尝试写入 test.txt。要么给它一个唯一的名称({}.out 或 job{#}.out),要么将 > 留在外面(在在这种情况下,所有作业的所有输出都将在这里结束))。
您可以"
使用以下引号在引号内转义\
:
ls *bed | parallel -j 10 "intersectBed -a good-genes.gff -b {} -c | awk 'BEGIN{OFS=\"\t\";} {print $1,$9,$4,$5,$7,$10}' > test.txt"