为什么我的马车返回在我的perl脚本中不起作用



从sed踏入perl,我正在尝试在CSS文件上练习,但是我遇到问题,但我没有发现来自多个搜索的问题。在我的bash脚本中,我针对具有:

的CSS文件
.thisclass
{   font-family: "Times New Roman";
    line-height: 1.20em;
    font-size: 1.00em;
    margin: .25em 0;
    color: rgb(0,0,0);
}

我的目标是:

.thisclass {    
    font-family: "Times New Roman";
    line-height: 1.20em;
    font-size: 1.00em;
    margin: .25em 0;
    color: rgb(0,0,0);
}

我尝试的perl是 perl -pe 's:r^{: {r:g',但它不起作用。如果我尝试:

perl -pe 's:^{:foobar:g'

输出为:

.thisclass
foobar  font-family: "Times New Roman";
    line-height: 1.20em;
    font-size: 1.00em;
    margin: .25em 0;
    color: rgb(0,0,0);
}

如果我尝试了perl -pe 's:r:foobar:g',则整个文档将通过foobar

修改

在我的文本编辑器中,我可以执行r^{,在我的终端中我可以进行s/n{/ {n/g;,但是我无法获得运输返回或通过sh foo.sh脚本执行的PERL工作的新线路。我尝试使用 s(whitespace字符等于[ tnrf]),但没有成功。

那么,为什么托架返回在我的perl中不起作用?有没有更好的方法来执行我想要做的事情?如果有更好的方法,您可以解释原因。

您正在阅读逐条读取文件,因此每行都以马车返回或新线结束 - 之后什么都没有。r{没有出现在任何一行上。

您可以使用-0777开关来启用Slurp模式,然后将整个文件读为字符串:

perl -0777 -pe 's/R{/ {n /g' foo.css

R应匹配任何类型的Newline,无论是rnr还是n

相关内容

  • 没有找到相关文章

最新更新