2013-11-20 86 views
0

我的perl脚本里面有一个sed命令有问题。当我执行该脚本我有以下错误:在perl脚本里面的sed命令不起作用

sed: -e expression #1, char 6: unterminated `s' command 

它涉及以下行:

$com1=`ls $path_correct | cut -f 1 -d "." | sed "s/.\{2\}$//" | sort > /tmp/usf-rpms`; 

为什么Perl不明白的sed?什么应该是正确的语法。我已经尝试了几天的处理问题,但没有想法来解决这个问题。请帮忙。

+1

在你的替代模式中放置一个\,它应该没问题。 – Mithrandir

+0

可能的重复[在Perl中写入valualble相同的字符串?](http://stackoverflow.com/questions/20070353/write-valualble-the-same-string-in-perl) – perreal

+2

虽然有可能做类似这在Perl中,我认为它非常可怕。首先,Perl具有“glob”,其行为类似于“ls”。它有“分割”来切割场地。它具有替代操作符,就像'sed'一样,它也具有'sort',并且可以打印到文件中。 – TLP

回答

2

您可能希望至少在“sed”后面加上“-e”。和“$”之前的“\”。

+0

是的,它现在正在工作。那是我正在寻找的。你让我更好地理解使用这些参数。谢谢! – Marcin

+1

具体而言,'$ /'是一个Perl变量,用于指定输入记录分隔符,因此您需要转义美元符号。 – chepner