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