Chinaunix

标题: perl 调用 sed 报错 [打印本页]

作者: bluesmile11    时间: 2013-03-31 21:02
标题: perl 调用 sed 报错
朋友们请教个问题
我在perl里面调用sed
原语句是,用于删除文本中为0的行
system ("/usr/bin/sed '/^0$/d/' qq_numbers > qqnumber_no_zero");
perl -c 可以通过
报错如下
sed: -e expression #1, char 3: unterminated address regex
改成
`/usr/bin/sed '/^0$/d/' qq_numbers > qqnumber_no_zero`;
也是报相同的错误


直接在shell 下执行
sed '/^0$/d' qq_numbers > qqnumber_no_zero
是可以执行的。


请问为什么会报这个错?要如何修正?
谢谢,如果可以的话,烦请详细说明


作者: bluesmile11    时间: 2013-03-31 21:06
补充一点
之前是这样写的
system("sed '/^0$/d' qq_numbers>qqnumber_no_zero")
也是不行
作者: Perlvim    时间: 2013-03-31 21:20
Perl 的双引号环境中, $ 美元符号有特殊含义,需要转义
作者: mcshell    时间: 2013-03-31 22:01
多个参数用","分割{:3_186:}
作者: bluesmile11    时间: 2013-04-07 17:11
回复 3# Perlvim


之前试过对$符号转义,效果是一样的,也是报错
作者: Perlvim    时间: 2013-04-07 19:36
回复 5# bluesmile11

报错信息是什么?
   
作者: bluesmile11    时间: 2013-04-08 19:31
Perlvim 发表于 2013-04-07 19:36
回复 5# bluesmile11

报错信息是什么?


在perl里面的语句是这个
system ("/usr/bin/sed '/^0\$/d/' qq_numbers > qqnumber_no_zero");


报错信息如下
/usr/bin/sed: -e expression #1, char 7: extra characters after command
作者: bluesmile11    时间: 2013-04-08 19:38
mcshell 发表于 2013-03-31 22:01
多个参数用","分割



你是说这样写?
system ("/usr/bin/sed '/^0\$/d/' qq_numbers >, qqnumber_no_zero");

应该是我没有写对还是有报错
作者: dahe_1984    时间: 2013-04-08 22:43
system ("/usr/bin/sed '/^0$/d/' qq_numbers > qqnumber_no_zero");

去掉后面的/

改为system ("/usr/bin/sed '/^0$/d' qq_numbers > qqnumber_no_zero");
作者: dahe_1984    时间: 2013-04-08 22:45
参考 http://wenku.it168.com/d_000034335.shtml

sed -e '/^#/d' /etc/services




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