Chinaunix

标题: 怎么转义一条命令 [打印本页]

作者: huang6894    时间: 2014-11-10 13:03
标题: 怎么转义一条命令
本帖最后由 huang6894 于 2014-11-10 13:04 编辑

各位大神,我想在perl中调用这两条命令:
  1. awk -F'\t' -vOFS='\t' 'NR==FNR{a[$2]=$3">>>"$4">>>"$5;next} {{split($79,b,";");for(i in b)if(b[i] in a){sub(b[i],a[b[i]],$79)}};$0=$0";"}1' $disease_all_db  $outdir/$date".disease.part"|awk -F'\t' '{print $79}'|sort|uniq|awk -F'>>>' '$3{if(($2!=".")&&($3!=".")&&($2!~/\[[0-9].*\]/)){print $1"\t"$2"[1]\t[1]"$3}else if(($2!=".")&&($3!=".")&&($2~/\[[0-9].*\]/)){print $1"\t"$2"\t"$3}}' |sed 's/"//g'|sed 's/\[1\]\t\[1\] //g'|awk -F'\t' '{print $1">>>"$2}'|sed -r 's/\s*,\s*/]。[/g'|sed 's/\[ /\[/g'|awk -vRS='[;。、,]' '{if(sub(/\[[0-9]+\]/,"["c+1"]")){c++;printf "%s",$0RT}else{printf "%s",$0RT}}'|sed 's/。\+/。/g'|sed 's/\[[0-9]*\]。/&;/g'|sed 's/\]。;\[/,/g'|sed '/^。$/d'|sed 's/\]。\[/,/g'|sed '/^ $/d'|awk -vdisease_definition_title="$disease_definition_title" -vdisease_definition_main="$disease_definition_main" -vdisease_definition_end="$disease_definition_end" -vnewline="$disease_definition_newline" -F'>>>' '{gsub("\\$\\$",newline,$2);sub("; $","。",$2);sub(";$","。",$2);print disease_definition_title""$1""disease_definition_main""$2""disease_definition_end}' >$outdir/$date".disease.definition.report"

  2. awk -F'\t' -vOFS='\t' 'NR==FNR{a[$2]=$3">>>"$4">>>"$5;next} {{split($79,b,";");for(i in b)if(b[i] in a){sub(b[i],a[b[i]],$79)}};$0=$0";"}1' $disease_all_db  $outdir/$date".disease.part"|awk -F'\t' '{print $79}'|sort|uniq|awk -F'>>>' '$3{if(($2!=".")&&($3!=".")&&($2!~/\[[0-9].*\]/)){print $1"\t"$2"[1]\t[1]"$3}else if(($2!=".")&&($3!=".")&&($2~/\[[0-9].*\]/)){print $1"\t"$2"\t"$3}}' |sed 's/"//g'|sed 's/\[1\]\t\[1\] //g'|awk -F'\t' '{print $3}'| awk -vRS='\\[[0-9]+\\]|\n' -vcds_ref_start="$disease_ref_start" -vcds_ref_in="$disease_ref_in" -vcds_ref_end="$disease_ref_end" '/^$/{next}{printf cds_ref_start"["++c"] "$0""cds_ref_end}'  >$outdir/$date".disease_ref.report"

复制代码
可是一直提示报错,我想应该是转义的问题,请问除了$要转义外,我还需要做什么转义呢?
作者: ly5066113    时间: 2014-11-10 13:03
本帖最后由 ly5066113 于 2014-11-10 13:20 编辑

回复 1# huang6894

不需要转义。

shellcmd = q@your command@;
作者: huang6894    时间: 2014-11-10 13:54
回复 2# ly5066113


    学习了。。。谢谢
作者: yestreenstars    时间: 2014-11-10 14:14
好特么长的命令啊!!!
作者: huang6894    时间: 2014-11-10 14:57
回复 4# yestreenstars


    半桶水写的就是这么diao
作者: 刺客阿地    时间: 2014-11-12 16:05
相当叼,对于这么长的,初学者,我就不看了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2