我正在学习Perl,所以请忍受我这个noob的问题。
如何在字符串中重复一个字符n次?
我想做如下的事情:
$numOfChar = 10; s/^\s*(.*)/' ' x $numOfChar$1/;
解决方法
默认情况下,替换将字符串替换为部分。要在替换过程中执行代码,您必须使用e标志。
$numOfChar = 10; s/^(.*)/' ' x $numOfChar . $1/e;
这将为您的文本开始添加$ numOfChar空间。要对文本中的每一行进行操作,可以使用-p标志(快速,单行处理):
cat foo.txt | perl -p -e "$n = 10; s/^(.*)/' ' x $n . $1/e/" > bar.txt
或者如果它是较大脚本的一部分,则使用-g和-m标志(全局为-g,即重复替换,-m在每行的起始处使^匹配):
$n = 10; $text =~ s/^(.*)/' ' x $n . $1/mge;