Remover uma linha especifica
Ola! A todos
Quero ter um script que ao passo que insiro a informacao desejada na variavel ele.
adicione, localiza ou remova esta informaçao.
Eu consegui localizar com o seguinte comando: ok
grep -ni $variavel $caminho do arquivo
Eu consegui adicionar com o seguinte comando: ok
echo $variavel >> $caminho do arquivo
Meu problema esta em:
usando o sed para excluir com o seguinte comando:
sed -i /$variavel/d $caminho do arquivo
o problema e que se digito na variavel a palavra google para ser excluida
E eu tiver dentro do txt 3 linhas assim
google
google.com
google.com.br
ira excluir todas pois contem o texto google
O que preciso e que apague somente a linha 1 onde esta apenas google.
nao consegui unir o cat com o | para saida em sed como li em forum.
alguem pode me dizer onde encontro um materia que possa me esclarecer
como resolver isto
Obrigado a todos
Re: Remover uma linha especifica
Obrigado funcionou comigo também!
Só que quando se tem nomes iguais no mesmo arquivo exibe um erro, por exemplo
teste e Teste
o erro:
sed: -e expressão #1, caractere 17: A expressão regular do endereço está inacabada (falta a /)
O que devo fazer para ele excluir os nomes iguais, mas um de cada vez !?
o comando que eu estou usando: sed -i /$var$/d $caminho
Re: Remover uma linha especifica
Então necessariamente teste não é igual a Teste se é que estou sendo claro... mas se você deseja remover ou trocar Teste e teste você pode colocar a ER abaixo.. Ex:
No seu arquivo teste_2010.log você tem a lista
teste
Teste
teste.com.br
teste.com
E você quer trocar "teste", "Teste", "teste.com.br" e "teste.com" por "puts" .. vc pode fazer o seguinte
Código :
## Sua variável recebendo o q vc deseja substituir exceto a letra q tem duas variações
## ou seja teste sem o t que é "este"
VAR=este
sed -i_bkp s/^[Tt]$v/puts/g teste_2010.log
cat teste_2010.log
puts
puts
puts.com
puts.com.br
Explicando o comando sed -i_bkp s/^[Tt]$VAR/puts/g teste_2010.log
-i_bkp # salva o arquivo teste_2010.log com o sufixo _bkp no final teste_2010.log_bkp
^ # Oq estiver depois do ^ estará no começo da linha (Âncora para início de linha)
[Tt] # Significa t minúsculo e T Maiúsculo ... pra Teste e teste
$VAR # É sua variável que contém "este"
Qualquer dúvida só perguntar...
Abço