如果基于一行的前10个字符,我正在寻找一些替换特定字符的帮助。例如:
如果该行
test ( 2 ) [123456789]
我想用
替换它test ( 2 ) [123MMM789]
即,如果该行以test ( 2 )
开头,则用M
如果该行以其他任何东西开头,则可以保留原样。提前谢谢!
答案 0 :(得分:2)
您可以使用匹配和substr
:
while (<>) {
substr($_, 19, 3) = 'MMM' if /^test \( 2 \)/;
print;
}
这也可以直接应用于命令行,因为它非常简单:
$ perl -pe 'substr($_, 19, 3) = "MMM" if /^test \( 2 \)/' file.txt