Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式中的perl意外标记?_Regex_Perl_Pipe - Fatal编程技术网

Regex 正则表达式中的perl意外标记?

Regex 正则表达式中的perl意外标记?,regex,perl,pipe,Regex,Perl,Pipe,我有一个unix进程抛出字符串,需要用引号和,括起来。Perl是我以前最喜欢的语言,所以我决定将Perl与管道结合使用。这个过程可以被一个cat(我想)模仿。我试着: cat lines.txt | perl -pe s/(\w+)/,\'$1\'/ 这会在意外标记“(”符合实际场景中的错误)附近产生语法错误 lines.txt看起来像: A B C D 怎么了?一个合适的perl命令可以是: perl -pe "s/(\w+)/,'\$1'/" 我们需要转义$以避免shell试图解释$1

我有一个unix进程抛出字符串,需要用引号和
括起来。Perl是我以前最喜欢的语言,所以我决定将Perl与管道结合使用。这个过程可以被一个
cat
(我想)模仿。我试着:

cat lines.txt | perl -pe s/(\w+)/,\'$1\'/
这会在意外标记“(”符合实际场景中的错误)附近产生
语法错误
lines.txt看起来像:

A
B
C
D

怎么了?

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

perl -pe "s/(\w+)/,'\$1'/"

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

合适的
perl
命令如下:

perl -pe "s/(\w+)/,'\$1'/"

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

错误是由于转义错误造成的。当您打算使用
perl
时,您还使用了
grep
,并且在不需要它的地方使用了
cat

perl -pe"s/(\w+)/,'\$1'/" lines.txt
   -or-
perl -pe's/(\w+)/,'\''$1'\''/' lines.txt

该错误源于错误的转义。当您打算使用
perl
时,您也使用了
grep
,并且在不需要它的地方使用了
cat

perl -pe"s/(\w+)/,'\$1'/" lines.txt
   -or-
perl -pe's/(\w+)/,'\''$1'\''/' lines.txt

你是说
perl-pe“s/(\w+)/,'\$1'/“
?谢谢!如果你回答了,我可以奖励一些分数。“这个过程可以被猫模仿”你是说它这么简单,连猫都能做到?!@Borodin那是薛定谔的猫,你不知道文件里有什么,除非你去猫。你是说
perl-pe“s/(\w+)/,'\$1'/“
?谢谢!如果你回答了,我可以奖励一些分数。“程序可以被猫模仿”你是说它这么简单,连猫都能做到?!@Borodin那是薛定谔的猫,除非你用猫,否则你不知道文件里有什么。你“不需要grep”?更像是“你不能使用grep”.在问题中输入了一个错误,应该是
cat lines.txt | perl-p
。但是答案仍然非常有效。@Jerry博士:当然,我不是指这个问题-虽然答案有点误导。但是现在已经更正了,所以一切都很好:)你“不需要grep”?更像是“你不能使用grep”。在问题中输入的错别字应该是
cat lines.txt | perl-p
。。但是答案仍然非常有效。@Jerry博士:当然,我不是指这个问题——尽管答案有点误导。但现在已经更正了,所以一切都很好:)