我有一个perl程序,我正在下载并在docker文件中使用。
该程序正在调用tbl2asn
但我不需要输出,并且这部分运行很长时间。因此,我想从这个perl程序中评论几行。
runcmd(
"tbl2asn -V b -a r10k -l paired-ends -M n -N 1 -y 'Annotated using $EXE $VERSION from $URL' -Z".
" Q$outdir/$prefix.errE -i Q$outdir/$prefix.fsaE 2> /dev/null"
);
delfile("$outdir/errorsummary.val");
delfile( map { "$outdir/$prefix.$_" } qw(dr fixedproducts ecn val) );
msg("Repairing broken .GBK output that tbl2asn produces...");
runcmd("sed 's/COORDINATES: profile/COORDINATES:profile/' < Q$outdir/$prefix.gbfE > Q$outdir/$prefix.gbkE");
delfile("$outdir/$prefix.gbf");
这些是我想评论的行,至少这一行"tbl2asn -V b -a r10k -l paired-ends -M n -N 1 -y 'Annotated using $EXE $VERSION from $URL' -Z".
在perl程序中只出现一次。
如何使用 awk 或 sed 通过正则表达式(之前一行和之后八行(注释此行?
谢谢。
Awk
解决方案:
样本file.pl
:
some text
runcmd(
"tbl2asn -V b -a r10k -l paired-ends -M n -N 1 -y 'Annotated using $EXE $VERSION from $URL' -Z".
" Q$outdir/$prefix.errE -i Q$outdir/$prefix.fsaE 2> /dev/null"
);
delfile("$outdir/errorsummary.val");
delfile( map { "$outdir/$prefix.$_" } qw(dr fixedproducts ecn val) );
msg("Repairing broken .GBK output that tbl2asn produces...");
runcmd("sed 's/COORDINATES: profile/COORDINATES:profile/' < Q$outdir/$prefix.gbfE > Q$outdir/$prefix.gbkE");
delfile("$outdir/$prefix.gbf");
some text
awk '/"tbl2asn -V b .+ -Z".$/{ n = NR + 9 }NR <= n{ rec = "#"rec }
rec{ print rec }{ rec = $0 }
END{ print rec }' file.pl
输出:
some text
#runcmd(
# "tbl2asn -V b -a r10k -l paired-ends -M n -N 1 -y 'Annotated using $EXE $VERSION from $URL' -Z".
# " Q$outdir/$prefix.errE -i Q$outdir/$prefix.fsaE 2> /dev/null"
#);
#delfile("$outdir/errorsummary.val");
#delfile( map { "$outdir/$prefix.$_" } qw(dr fixedproducts ecn val) );
#
#msg("Repairing broken .GBK output that tbl2asn produces...");
#runcmd("sed 's/COORDINATES: profile/COORDINATES:profile/' < Q$outdir/$prefix.gbfE > Q$outdir/$prefix.gbkE");
#delfile("$outdir/$prefix.gbf");
some text