O comando "rpl" do Linux não substitui o texto

-1

Estou usando o programa rpl no linux para substituir date( por pdate( em alguns arquivos.
Mas diz A Total of 0 matches replaced in 1 file searched.
enquanto a saída do grep para date( é:

ariyan@ariyan-laptop:/var/www/moodle21$ grep -wR 'date(' admin/uploaduser.php
$today = make_timestamp(date('Y', $today), date('m', $today), date('d', $today), 0, 0, 0);

Estou usando rpl como este:

rpl -wR 'date(' 'pdate(' admin/uploaduser.php

Qual é o problema?

    
por RYN 28.10.2011 / 21:09

1 resposta

3

Eu nunca usei essa ferramenta antes, mas olhando para a descrição do que "-w" estou supondo que está lidando com limites de palavras ligeiramente diferentes do esperado. Se você tirar o "-w", deve funcionar. Além disso, no exemplo dado a você um único arquivo para corresponder, então o -R também não entrará em jogo.

Tente:

rpl 'date(' 'pdate(' admin/uploaduser.php

EDIT: Após um pouco de pesquisa, descobri que há um erro relatado para o rpl não manipular a pontuação como limites de palavras, e é por isso que isso não está funcionando. Então a única opção é usar outra ferramenta. Sed vem à mente para esta tarefa, então você pode realizá-lo com o seguinte:

sed -i 's/\bdate(/pdate(/g' admin/uploaduser.php

Isso fará uma substituição in-line (-i) da mesma forma que o rpl teria feito e está combinando com as datas de início e substituindo-as por pdate.

    
por 28.10.2011 / 22:08