首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式中的perl意外令牌?

问正则表达式中的perl意外令牌?
EN

Stack Overflow用户
提问于 2015-11-02 14:16:42
回答 2查看 142关注 0票数 1

我有一个unix进程,它需要被引号和,的字符串包围。Perl是我以前最喜欢的语言,所以我决定将perl与管道结合使用。cat可以模仿这些过程(我认为)。

代码语言:javascript
复制
cat lines.txt | perl -pe s/(\w+)/,\'$1\'/

这使syntax error near unexpected token '('符合真实场景中的错误,lines.txt如下所示:

代码语言:javascript
复制
A
B
C
D

怎么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-02 14:22:02

一个合适的perl命令可以是:

代码语言:javascript
复制
perl -pe "s/(\w+)/,'\$1'/"

我们需要转义$,以避免shell试图解释$1。

票数 3
EN

Stack Overflow用户

发布于 2015-11-02 14:45:52

那个错误是因为逃逸很糟糕。当您打算使用grep时,您还使用了perl,并且在不需要它的地方调用了cat。

代码语言:javascript
复制
perl -pe"s/(\w+)/,'\$1'/" lines.txt
   -or-
perl -pe's/(\w+)/,'\''$1'\''/' lines.txt
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33479695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档