perl pesquisar e substituir

0

Eu tenho um arquivo

love=/abc
day=abc
night=xyz
afternoon=xyzabc

Estou lendo cada um no valor em uma variável, agora eu preciso para substituir o 2 nd variável com uma seqüência particular. gostar

$1st = "/abc"   $replace1 = "/abc/pqr"
$2nd = "abc"    $replace2 = "abc1"
$3rd = "xyzabc" $replace3 = "mnpabc"

Eu usei perl -0777 -pi -2 's%$1st%$replace1%' fileisso faz a primeira linha de substituição

Eu usei perl -0777 -pi -e 's/3rd/$replace1/ fileisso na terceira linha.

mas no momento em que substituo $ 2nd por $ replace, ele substitui todos os lugares onde houver "abc". como posso restringir isso para substituir apenas um elemento por vez?

Guestme
fonte
Qualquer pessoa que tenha alguma idéia sobre isso
Guestme 22/02

Respostas:

1

Difícil entender exatamente o que você está fazendo, mas seu arquivo de entrada se ajusta ao formato de um arquivo de configuração (como windows ini ou unix conf). Eu sugiro que você use um módulo Perl que possa ajudar a ler e escrever esse formato facilmente. Tente Config :: Simple ou Config :: INI do CPAN.

Caso contrário, você está usando "perl -0777" (ignorar separadores de registros) intencionalmente? Isso é incomum para mim, como é esta lista de one-liners em geral.

igelkott
fonte