免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2165 | 回复: 6

[其他] 怎么转义一条命令 [复制链接]

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
发表于 2014-11-10 13:03 |显示全部楼层
5可用积分
本帖最后由 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"

复制代码
可是一直提示报错,我想应该是转义的问题,请问除了$要转义外,我还需要做什么转义呢?

最佳答案

查看完整内容

回复 1# huang6894 不需要转义。shellcmd = q@your command@;

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
发表于 2014-11-10 13:03 |显示全部楼层
本帖最后由 ly5066113 于 2014-11-10 13:20 编辑

回复 1# huang6894

不需要转义。

shellcmd = q@your command@;

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
发表于 2014-11-10 13:54 |显示全部楼层
回复 2# ly5066113


    学习了。。。谢谢

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-11-10 14:14 |显示全部楼层
好特么长的命令啊!!!

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
发表于 2014-11-10 14:57 |显示全部楼层
回复 4# yestreenstars


    半桶水写的就是这么diao

论坛徽章:
11
CU十二周年纪念徽章
日期:2013-10-24 15:41:342015年辞旧岁徽章
日期:2015-03-03 16:54:15丑牛
日期:2015-01-14 10:36:40技术图书徽章
日期:2015-01-12 15:46:11白羊座
日期:2014-11-14 09:35:36狮子座
日期:2014-10-30 13:18:49巳蛇
日期:2014-10-11 12:52:08子鼠
日期:2014-09-28 14:11:06双鱼座
日期:2014-04-22 13:05:48午马
日期:2014-02-11 17:58:002015年迎新春徽章
日期:2015-03-04 09:55:28
发表于 2014-11-12 16:05 |显示全部楼层
相当叼,对于这么长的,初学者,我就不看了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP