perl将花括号替换为普通括号
我需要写一个脚本来查看一个文件,并用普通括号替换任何花括号。到目前为止,我已经:perl将花括号替换为普通括号,perl,replace,Perl,Replace,我需要写一个脚本来查看一个文件,并用普通括号替换任何花括号。到目前为止,我已经: use strict; use warnings; open(INFILE,"<rscore") || die "Couldn't open rscore for reading!\n"; open(OUTFILE,">rscore.new") || die "Couldn't open rscore.new for writing!\n"; while(<INFILE>){ $_ =~
use strict;
use warnings;
open(INFILE,"<rscore") || die "Couldn't open rscore for reading!\n";
open(OUTFILE,">rscore.new") || die "Couldn't open rscore.new for writing!\n";
while(<INFILE>){
$_ =~ s/{/(/gi; #g for every occurrence, i for case-insensitive
print OUTFILE $_;
}
close INFILE;
close OUTFILE;
rename("rscore.new","rscore") || die "Couldn't rename the new file!\n";
这可能是愚蠢的事情。此外,如果有一种更有效的方法(我肯定有),我愿意接受建议。试试以下方法:
$string=~tr/{}/()/代码>请尝试以下方法:
$string=~tr/{}/()/代码>这是一个perl单行程序
$ perl -lpe 'tr |{}|()|' <infile >outfile
$perl-lpe'tr |{}|()| outfile
这是一个perl单行程序
$ perl -lpe 'tr |{}|()|' <infile >outfile
$perl-lpe'tr |{}|()| outfile
这是一个用于就地编辑文件的perl单行程序
perl -pi -e 's/{/(/g;s/}/)/g' your_file
下面将在控制台上打印输出
perl -p -e 's/{/(/g;s/}/)/g' your_file
这是一个用于就地编辑文件的perl单行程序
perl -pi -e 's/{/(/g;s/}/)/g' your_file
下面将在控制台上打印输出
perl -p -e 's/{/(/g;s/}/)/g' your_file
您需要用\来转义左括号。您的语法错误似乎是由注释中的换行引起的,导致“不区分大小写”被拆分,“不区分大小写”最后出现在打印
上方的未注释行上。这可能是因为使用了不适合编写代码的编辑器;(替换部分没有什么特别之处吗?您需要用\来转义左括号。您的语法错误似乎是由注释中的换行符引起的,导致“不区分大小写”被拆分和“不区分大小写”最后出现在打印
上方的未注释行上。这可能是因为使用了不适合编写代码的编辑器。Lone Shepherd:不,你没有;(此时替换部分>是否有什么特别之处?@brucezepplin:$
是shell提示符,用于指示这是类似sh的shell的命令行(bash等人)。如果您在没有bash克隆的windows上,则可能需要将单引号替换为双引号:c:>perl-lpe“tr |{}|()|”outfile
。同样,c:>
只是shell提示符,所以不要键入它。他可能甚至不需要perl脚本,而是直接使用tr
命令:tr'{}'()“infle>outfile
>此时出乎意料?@brucepplin:The$
是shell提示符,用于指示这是类似sh的shell的命令行(bash等人)。如果您在windows上没有bash克隆,则可能需要将单引号替换为双引号:c:>perl-lpe“tr |{}()|”outfile
。同样,c:>
只是shell提示符,所以不要键入它。他可能甚至不需要perl脚本,而是直接使用tr
命令:tr'{}'()'infle>outfile