perl procura e substitui

0

Eu tenho um arquivo

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

Eu estou lendo cada valor em uma variável, agora eu preciso substituir a variável 2 nd com uma string específica. como

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

Eu usei perl -0777 -pi -2 's%$1st%$replace1%' file isso substitui a primeira linha

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

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

    
por Guestme 21.02.2013 / 21:50

1 resposta

1

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

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

    
por 24.02.2013 / 20:48

Tags