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?


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.