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%' file
isso faz a primeira linha de substituição
Eu usei perl -0777 -pi -e 's/3rd/$replace1/ file
isso 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?
Respostas:
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.
fonte