Removendo linha específica do texto.

1. Removendo linha específica do texto.

Wagner Andreatta
Andreatta

(usa Outra)

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


  


2. RESOLV IDO

Wagner Andreatta
Andreatta

(usa Outra)

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.

Vinicius Miqueloti
Miqueloti

(usa Lubuntu)

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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts