Make sed pede confirmação antes de cada substituição?

31

Existe uma maneira de fazer sed me pedir confirmação antes de cada substituição? Algo semelhante ao 'c' ao usar substituir dentro do vim.

O sed faz isso mesmo?

    
por Yuvi 06.09.2011 / 01:53

3 respostas

31

Realizar isso com sed provavelmente não seria possível, pois é um editor de fluxo não interativo. Quebra de sed em um script exigiria muita reflexão. É mais fácil apenas fazer isso com vim :

vim -c '%s/PATTERN/REPLACEMENT/gc' -c 'wq' file.in
    
por 07.09.2011 / 17:26
7

Você pode conseguir isso fazendo isso:

:%s/OLD_TEXT/NEW_TEXT/gc

Especificamente, adicionando o c após o terceiro delimitador.

Note que a opção 'c' só funciona no Vim; você não poderá usá-lo com sed na linha de comando.

    
por 07.10.2011 / 20:30
3

Você pode deixar sed fazer a coisa no arquivo e salvar o resultado em um arquivo temporário que pode ser interativamente inserido no arquivo original usando sdiff (consulte link ):

sed -r 's/something/something_else/g' my_file > tmp_file
sdiff -o my_file -s -d my_file tmp_file
    
por 13.03.2016 / 01:19

Tags