bash - 在 GNU Parallel 日志报告中包含命令屏幕输出
问题描述
我有一个脚本使用 GNU Parallel 多次调用另一个脚本。这是我的并行化代码的重要部分:
export PTH_data={my input path}
export WDIR={my output path}
export idsuffix=\.'[1-2]'
export R1=${idsuffix/\[1-2\]/1}
export R2=${idsuffix/\[1-2\]/2}
export raw_extns='.fastq.gz'
## IDs is a txt file with one column containing the sample names.
inputFile=$(cat $PTH_data/IDs.txt | awk '{ print $1 }')
parallel "./bin/scr/MOTHUR_run.sh {1} > logs/parallel_{1}.log" ::: $inputFile
这里调用了 MOTHUR_run.sh 脚本:
#!/bin/bash
echo -e "MOTHUR pipeline for 16S analysis.
Analyzing sample "$(awk '/'$1'/{ print NR; }' $PTH_data/TotalIDs.txt)" of "$(< $PTH_data/TotalIDs.txt wc -l)".
Input files (FW & RV):
- $1$R1$raw_extns
- $1$R2$raw_extns"
echo -e "\n>>> TRIMMING ACTIVATED\n"
module load jdk/8u181
java -jar ./Trimmomatic-0.36/trimmomatic-0.36.jar PE -phred33 $WDIR/$1$R1.fastq $WDIR/$1$R2.fastq \
$WDIR/$1$R1'_paired.fastq' $WDIR/$1$R1'_unpaired.fastq.gz' $WDIR/$1$R2'_paired.fastq' $WDIR/$1$R2'_unpaired.fastq.gz' \
LEADING:3 TRAILING:3 SLIDINGWINDOW:20:30 MINLEN:220
ffile="$WDIR/"$1$R1"_paired"
rfile="$WDIR/"$1$R2"_paired"
module unload jdk/8u181
echo -e "\n>>> TRIMMING FINISHED\n"
module load intel/2018.5.274 mothur/1.40.5 vsearch/2.9.1
mothur "#summary.seqs(fasta=$(echo $ffile.trim.contigs.fasta))"
(And more code...)
我想以相同的执行顺序将修剪屏幕输出包含在并行日志文件中。echo 部分工作正常,mothur 命令还自动将它们的屏幕输出包含在日志文件中。
有任何想法吗?
解决方案
推荐阅读
- minecraft - Minecraft 1.12.2 改装服务器:“出现问题”
- c# - 车把块助手未注册
- typescript - 为什么需要添加文本更改事件以及我们如何在 Aurelia 应用程序中添加
- if-statement - vars 在 rewrite_by_lua_block 后不起作用
- reactjs - 为什么即使我没有渲染任何东西,我也会收到“对象作为 React 孩子无效”的错误?
- javascript - 如何自动调整文本区域的大小以适应内容?
- java - 在数组中查找重复项,在 java 中填充重复次数最多的第二个数组
- python - 相同的输入导致两次不同的预测
- c++ - Windows Visual Studio C++ 列表列表
- spring-boot - I can't implement Reactive Repository with Elasticsearch in Spring Boot