コマンドログ ファイルがあり、表形式で情報を選択したいと考えています。入力は次のようになります。
####################################################################################################
# Starting pipeline at Mon Jul 29 12:22:56 CEST 2013
# Input files: test.fastq
# Output Log: .bpipe/logs/27790.log
# Stage Results
mkdir ./QC_graphics_results/
####################################################################################################
# Starting pipeline at Mon Jul 29 12:22:57 CEST 2013
# Input files: test.fastq
# Output Log: .bpipe/logs/27790.log
# Stage Statistics_graph_2
fastqc test.fastq -o ./QC_graphics_results/
mv .QC_graphics_results/*fastqc .QC_graphics_results/fastqc
####################################################################################################
# Starting pipeline at Mon Jul 29 12:24:18 CEST 2013
# Input files: test.fastq
# Output Log: .bpipe/logs/27790.log
# Stage GC_content [all]
# Stage Dinucleotide_odds [all]
# Stage Sequence_duplication [all]
prinseq-lite.pl -fastq test.fastq -graph_data test.Dinucleotide_odds.gd -graph_stats dn -out_good null -out_bad null
prinseq-lite.pl -fastq test.fastq -graph_data test.Sequence_duplication.gd -graph_stats da -out_good null -out_bad null
prinseq-lite.pl -fastq test.fastq -graph_data test.GC_content.gd -graph_stats gc -out_good null -out_bad null
必要な出力は、次のように、各ステージとコマンドを含むテーブルになります。
Stage result mkdir./QC_grahics_results/
Stage Statistics_graph_2 fastqc test.fastq -o ./QC_graphics_results/
Stage GC_content [all] prinseq-lite.pl -fastq test.fastq -graph_data test.GC_content.gd -graph_stats gc -out_good null -out_bad null
Dinucleotide_odds [all] prinseq-lite.pl -fastq test.fastq -graph_data test.Sequence_duplication.gd -graph_stats da -out_good null -out_bad null
Stage Sequence_duplication [all] prinseq-lite.pl -fastq test.fastq -graph_data test.GC_content.gd -graph_stats gc -out_good null -out_bad null
次のコードを使用して AWK を試してみましたが、うまくいきません。助言がありますか?
cat commandlog.txt | awk '/^#\ Stage*/{print $0} !/^#.*/{print $0}' | awk '{ if ($0 ~ /^#*/){ if (b=1){next} else {a=$0 b=1 next;} else { if (NF!=0){func=$0 b=0 print $a\t$func\n}}' > ./statistic_files/user_options