Deletar linha de um arquivo? [RESOLVIDO]

1. Deletar linha de um arquivo? [RESOLVIDO]

Leonardo Henrique Burrone
ReonarudoB

(usa Outra)

Enviado em 30/07/2015 - 23:40h

Olá.
Eu criei um script para mover arquivos para outra pasta a partir do caminho anterior dele que está armazenado em um arquivo. Eu obtive o caminho dele ao ler o outro arquivo (que armazena caminhos) e armazenei este caminho em uma variável. Em seguida movi o arquivo para seu destino mas agora preciso deletar essa linha do arquivo. Eu tentei utilizar grep mas ele somente listou as linhas que não possuem o caminho que está armazenado na variável var. Como posso deletar somente a linha do arquivo?

grep -v "$var" "/home/restorefiles" 


Estou utilizando minix 3.2.1.

*Obs: var = variável que contem o caminho que quero deletar.
restorefiles = arquivo que possui os caminhos.


  


2. Re: Deletar linha de um arquivo? [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 30/07/2015 - 23:50h

Olá,

Tô confuso. rs
posta o exemplo de conteudesse arquivo e tabem do que exatamente quer fazer.

pelo pouco que entendi, vc quer excluir a linha que contem o conteúdo da variável $var, certo?
para isso, faz assim:
sed -i "s/'$var'//g" arquivo  


abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


3. Sobre.

Leonardo Henrique Burrone
ReonarudoB

(usa Outra)

Enviado em 30/07/2015 - 23:55h

tonyhts escreveu:

Olá,

Tô confuso. rs
posta o exemplo de conteudesse arquivo e tabem do que exatamente quer fazer.

pelo pouco que entendi, vc quer excluir a linha que contem o conteúdo da variável $var, certo?
para isso, faz assim:
sed -i "s/'$var'//g" arquivo  


abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


Olá.
Sim, eu desejo deletar uma linha de um arquivo. O arquivo restorefiles contem:


/root/arq1
/root/arq2
/root/arq3


A variavel var possui: "/root/arq1". Quero deletar a linha que contém "/root/arq1" do arquivo. Tentei utilizar sed mas não exite a opção sed -i para mim.

Obrigado.



4. Re: Deletar linha de um arquivo? [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 31/07/2015 - 00:00h

Entendido,

Tenta assim:
sed "/'$var'/d" restorefiles 


abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


5. Sobre.

Leonardo Henrique Burrone
ReonarudoB

(usa Outra)

Enviado em 31/07/2015 - 00:08h

tonyhts escreveu:

Entendido,

Tenta assim:
sed "/'$var'/d" restorefiles 


abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


Olá.
Recebi um erro "sed: first RE may not be empty". Na verdade porque tentei utilizar aspas duplas:

sed "/"/root/arq1"/d" restorefiles.


Quando tentei utilizar:


sed "/'/root/arq1'/d" restorefiles.


Este comando somente listou as linhas do arquivo.

Obrigado.




6. Re: Deletar linha de um arquivo?

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 31/07/2015 - 00:23h

Oi.

Acho que não entendi direito, mas vou perguntar:

O grep -v não está fazendo exatamente o que você quer?

Veja:


paulo@note-paulo:~$ grep -v '/root/arq1' arquivo
/root/arq2
/root/arq3


Claro que isso não altera o arquivo inicial. Para tanto seria assim:


paulo@note-paulo:~$ cat arquivo
/root/arq1
/root/arq2
/root/arq3
paulo@note-paulo:~$ grep -v '/root/arq1' arquivo > aux && rm -f arquivo && mv aux arquivo
paulo@note-paulo:~$ cat arquivo
/root/arq2
/root/arq3
paulo@note-paulo:~$


Apenas troque '/root/arq1' pela variavel.



7. Re: Deletar linha de um arquivo? [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 31/07/2015 - 00:26h

sed "/'/root/arq1'/d" restorefiles.

o certo seria:
sed '/\/root\/arq1/d' restorefiles 


mas tanto o primeiro comando que sugeri, quanto esse, não será util sem o -i.


---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


8. Sobre.

Leonardo Henrique Burrone
ReonarudoB

(usa Outra)

Enviado em 31/07/2015 - 00:37h

p4ulodi4s escreveu:

Oi.

Acho que não entendi direito, mas vou perguntar:

O grep -v não está fazendo exatamente o que você quer?

Veja:


paulo@note-paulo:~$ grep -v '/root/arq1' arquivo
/root/arq2
/root/arq3


Claro que isso não altera o arquivo inicial. Para tanto, seria assim:


paulo@note-paulo:~$ cat arquivo
/root/arq1
/root/arq2
/root/arq3
paulo@note-paulo:~$ grep -v '/root/arq1' arquivo > aux && rm -f arquivo && mv aux arquivo
paulo@note-paulo:~$ cat arquivo
/root/arq2
/root/arq3
paulo@note-paulo:~$


Apenas troque '/root/arq1' pela variavel.


Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


Olá.
Fiz uma solução bem parecida com essa e agora deu certo.
Obrigado.




9. Sobre.

Leonardo Henrique Burrone
ReonarudoB

(usa Outra)

Enviado em 31/07/2015 - 00:38h

tonyhts escreveu:

sed "/'/root/arq1'/d" restorefiles.

o certo seria:
sed '/\/root\/arq1/d' restorefiles 


mas tanto o primeiro comando que sugeri, quanto esse, não será util sem o -i.


---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


Olá.
Esse comando também não deu certo aqui. Mas consegui fazer uma solução diferente.
Obrigado.




10. Re: Deletar linha de um arquivo? [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 31/07/2015 - 00:42h

Que bom!

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts