行の最初の 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