0

行の最初の 10 文字に基づいている場合、特定の文字を置き換える助けを探していました。例えば:

行が

test  (    2 ) [123456789]

と交換したいと思います

test  (    2 ) [123MMM789]

つまり、行が で始まる場合、test ( 2 )列 19、20、21 を M に置き換えます。

行がそれ以外で始まる場合は、そのままにしておくことができます。前もって感謝します!

4

1 に答える 1

2

マッチと を使用できますsubstr:

while (<>) {
  substr($_, 19, 3) = 'MMM' if /^test  \(    2 \)/;
  print;
}

これは非常に単純なので、コマンド ラインに直接適用することもできます。

$ perl -pe 'substr($_, 19, 3) = "MMM" if /^test  \(    2 \)/' file.txt
于 2012-11-12T22:51:01.497 に答える