Pular para o conteúdo

Removendo linha específica do texto.

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Removendo linha específica do texto.

Enviado em 03/12/2013 - 15:35h

Olá!
Sou iniciante (e estudante) em Linux e posso dizer que estou adorando (planejo um TCC baseado em Linux!)
Pois bem, assim como todos os iniciantes, tenho dúvidas.
Relutei em me virar sozinho... mas estou esbarrando na falta de conhecimento.
Preciso fazer a tal da Agenda shell.
Tenho quase tudo pronto, mas uma única dúvida me assombra:
Preciso remover uma linha específica que tenha como base uma variável de um texto.dat.
Meu texto.dat contem exatamente:

IDnome|Nome|IDtel|Telefone
1|Maria|101|1234-5678
2|João|102|2345-6789
3|Pedro|103|3456-7890

Preciso excluir a segunda linha e gostaria de usar esse "IDnome" como sendo a variável...

Tipo:
#cat texto.dat
#1|Maria|101|1234-5678
#2|João|102|2345-6789
#3|Pedro|103|3456-7890
#Qual o ID a excluir!?
#read id
#sed -i /$idnome$/d texto.dat

Mas... não sei o que estou fazendo de errado! :(
Se puderem me iluminar, agradço! ;)

Abraços!
ANdreatta

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. RESOLV IDO

Enviado em 04/12/2013 - 00:32h

Para quem se empenheou... muito obrigado! :D
Para quem quer uma luz... fica aí parte do meu código! ;)


# echo "---------------------------------------------------------------"
# echo "| Digite o ID do nome que deseja EXCLUIR: |"
# echo "---------------------------------------------------------------"
# read idnome
# echo "---------------------------------------------------------------"
# echo "| A T E N Ç Ã O !! Deseja realmente EXCLUIR!? [s/n] |"
# echo "---------------------------------------------------------------"
# read resposta
# if [ $resposta = s ]
# then
# while read linhas
# do
# linha2=$(echo $linhas | awk '{print $1}')
#
# if [ "$linha2" = "$idnome" ]
# then
# sed -i "/$linhas/ d" Listatel.dat
# fi
# done < Listatel.dat
# sleep 1
# echo "---------------------------------------------------------------"
# echo "| EXCLUINDO... |"
# echo "---------------------------------------------------------------"
# sleep 2
# echo "---------------------------------------------------------------"
# echo "| C O N T A T O E X C L U Í D O !! |"
# echo "---------------------------------------------------------------"
# sleep 2
# source Agenda.sh
# else
# echo "---------------------------------------------------------------"
# echo "| EXCLUSÃO CANCELADA!! |"
# echo "---------------------------------------------------------------"
# sleep 3
# source Agenda.sh
# fi

Abraços!

3. Re: Removendo linha específica do texto.

Enviado em 30/05/2014 - 13:16h

use o comando grep

grep -v 'expressão'

O parametro -v irá imprimir todas as linhas que não contiver a expressão que você utilizar

Pode-se utilizar regex, etc com utilização de outros parametros também.

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder