Encontre o padrão usando grep e substitua por sed [duplicado]

0

Eu tenho as seguintes linhas de código

        BalancerMember http://server3:82 status=D
        BalancerMember http://server2:80 status=D

Eu quero procurar por entradas com a porta 82 e, em seguida, quero apagar status=D . Então, vai ficar assim

        BalancerMember http://server3:82

Tentei isso, mas isso não vai funcionar

  grep :82 app.conf | sed -i 's/status=D/ /'
  sed: no input files

Eu preciso da opção -i com sed porque gostaria de fazer a alteração no arquivo.

Alguma sugestão.

    
por Zama Ques 09.12.2016 / 07:17

3 respostas

3

você pode testar uma solução completa de sed

sed -i '/:82 /s/status=D//' file

onde

  • /:82 / seleciona linha com 82
  • s/status=D/ substitui status por
  • // nada.
por 09.12.2016 / 07:43
0

Com base nos seus dados de amostra, isso deve funcionar

awk '/:82 /{print $1,$2; next} {print}' inputfile

Você pode redirecionar a saída disso para outro arquivo.

awk '/:82 /{print $1,$2; next} {print}' inputfile >> newfile

Geralmente, não gosto de fazer alterações nos dados originais, se puderem ser ajudados.

    
por 09.12.2016 / 07:28
0

com base na entrada dada

awk '$2~/:82$/{$NF=""}1' input.txt > output.txt
    
por 09.12.2016 / 07:42

Tags