Remover linha de um ficheiro através de um script

Iniciado por hraposo, 16 de Agosto de 2007, 15:56

tópico anterior - próximo tópico

hraposo

Se eu num script colocar a linha:

echo "deb ftp://ftp.videolan.org/pub/videolan/ubuntu dapper universe" >> /etc/apt/sources.list

isto adiciona um repositório à sources.list.

Há alguma forma de apagar uma linha de um ficheiro ou de a comentar, num script?

alarcon

#1
Citação de: hraposo online 16 de Agosto de 2007, 15:56
Se eu num script colocar a linha:

echo "deb ftp://ftp.videolan.org/pub/videolan/ubuntu dapper universe" >> /etc/apt/sources.list

isto adiciona um repositório à sources.list.

Há alguma forma de apagar uma linha de um ficheiro ou de a comentar, num script?

O comando sed é ótimo para estas coisas, leia sobre ele no manual:

man sed

ou

info sed

ou procure no google sobre o comando sed ok.

Por exemplo:

Atenção: Faça uma cópia de segurança do seu arquivo sources.list que se encontra em /etc/apt/.

Agora coloque estas três linhas ( copie e cole, é melhor ) no seu script:

sed -e s/'"ftp:\/\/ftp.videolan.org\/pub\/videolan\/ubuntu"'/'"#ftp:\/\/ftp.videolan.org\/pub\/videolan\/ubuntu"'/g' /etc/apt/sources.list > /etc/apt/sources.list-1
rm -f /etc/apt/sources.list
mv /etc/apt/sources.list-1 /etc/apt/sources.list



veja se funciona.

Bom basicamente o que ele vai fazer é verificar no arquivo /etc/apt/sources.list se existe a linha:

ftp://ftp.videolan.org/pub/videolan/ubuntu

aí ele vai substituí-la por:

#ftp://ftp.videolan.org/pub/videolan/ubuntu

ou seja, vai comentá-la.

Se não existir a determinada linha no sources.list ele não vai fazer nada.