Bash, remova linhas contendo string com grep

4

No momento, isso está excluindo todo o conteúdo do arquivo em questão:

#!/bin/bash
rpc_port="9201";
dir="/etc/apache2/ports.conf"
cat $dir | grep -v "Listen $rpc_port" > $dir

O conteúdo do arquivo:

Listen 9200
Listen 9201
Listen 9202
Listen 9203
Listen 9204

Alguém poderia por favor consertar isso ou me dar uma alternativa de trabalho?

    
por Mr. King 06.08.2012 / 07:37

1 resposta

4

Você não pode escrever (= redirecionar) para o mesmo arquivo que está lendo. Redirecionar para um arquivo diferente ou usar sed.

sed -i "/$rpc_port/d" $dir
    
por 06.08.2012 / 07:39