Pular para o conteúdo

Scritp de busca

Responder tópico
  • Denunciar
  • Indicar
01 02

1. Scritp de busca

Enviado em 22/01/2010 - 17:46h

Srs Preciso de um script que busque uma determinada palavra ou um texto dentro de um vi ou outro editor.
Se souber por favor me ajudem...
Abraços

Responder tópico

2. Re: Scritp de busca

Enviado em 22/01/2010 - 17:51h

Dentro do aquivo ( # vi aquivo.txt )

Só usar /palavra

Vou fazer um código aqui para te mostrar...

3. Re: Scritp de busca

Enviado em 22/01/2010 - 18:10h

Fiz em Ruby, tem perigo ?

puts "Entre com o caminho do arquivo : "
caminho =gets()
system("vi"+ caminho);
puts "entre com a palavra a ser buscada : "
palavra =gets()
system("/"+palavra);

4. Re: Scritp de busca

Enviado em 22/01/2010 - 18:59h

nao seria melhor usar o

grep nome arquivo.txt

5. Detalhes

Enviado em 23/01/2010 - 08:42h

Bom srs poderia até ser dessa forma porem teria que ser em escript em forma de um programa de pesquisa, pois trabalho no suporte de uma empresa de sistemas e são mais de 2500 programas, numca irei gravar tudo isso, então eu colocaria os titulos desses programas dentro de tal script e na hora que eu quiser pesquisar eu rodaria o script com a seguinte pergunta (Qual palavra Buscar? )e ele me traria os textos relacionado com a pesquisa.
Espero te exclarecido bem... Abraços.

6. Re: Scritp de busca

Enviado em 23/01/2010 - 08:48h

Esse script que eu fiz não deu certo ?

É só ter um interpretador Ruby e usar ruby nome.rb

7. Re: Scritp de busca

Enviado em 23/01/2010 - 08:54h

Não tem segredo algum, basta vc abrir o tal arquivo que não só de texto pode ser como um arquivo feito no notepad (.pl, .c, .cpp, ,sh e etc )

vi seu_arquivo.extensão

dentro do editor vi, aperte a tecla Esc, e digite /

agora digita a palavra que vc quer buscar. Sem script fica mais rápido( em minha opinião )

8. Re: Scritp de busca

Enviado em 23/01/2010 - 09:02h

Bom junior até fungo mais pelo que vi ele pesquisa somente a primeira busca e pronto,se eu tiver dois nomes iguais dentro do vi ele só vai no primeiro, me corrija se eu estiver errado...
Abraços e obrigado pela atenção.
ATT ROSICLEI JP

9. Re: Scritp de busca

Enviado em 23/01/2010 - 11:27h

eu tenho um script que digamos faz algo parecido

olha

http://www.vivaolinux.com.br/script/Busca-de-arquivos-nas-ports-FreeBSD

a diferença eh que ele soh tráz o diretorio

find /usr/ports -type d -iname "*$aplicativo*" >> "$LOG/busca"

ai vc teria que fazer algo assim

echo `grep "$aplicativo" diretorio`

10. Re: Scritp de busca

Enviado em 23/01/2010 - 13:13h

consegui, axo que sim, mas está tudo instavel ainda, tem alguns bugs que nao consegui resolver AINDA, veja:

===========================================================

#!/bin/bash

tmp=~/.tmp-$RANDOM ; touch $tmp
AQUI=`pwd`

PALAVRA=$( dialog --stdout --inputbox 'Digite uma palavra:' 0 0 )
if [ "$?" -eq '1' ]; then
exit 1
fi

DIRETORIO=$(dialog --stdout --menu 'Tipos de diretorios:' 0 0 0 \
Definido 'Diretorios definidos' \
Personalizado 'Você escolhe o diretorio personalzado' )
if [ "$?" -eq '1' ]; then
rm -rf $tmp
exit 1
fi

case $DIRETORIO in

Personalizado)
DIRETORIO1=$( dialog --stdout --inputbox 'Digite um diretorio:' 0 0 )
if [ "$?" -eq '1' ]; then
rm -rf $tmp
exit 1
fi
DIRETORIOFINAL=$DIRETORIO1
;;

Definido)
DIRETORIO2=$( dialog --stdout \
--checklist 'Escolha os diretorios:' 0 0 0 \
"$AQUI" 'Diretorio atual' ON \
"$HOME" 'Diretorio home' OFF \
"/" 'Raiz' OFF \
"/usr" '' OFF \
"/var" '' OFF \
"/etc" '' OFF )
if [ "$?" -eq '1' ]; then
rm -rf $tmp
exit 1
fi
DIRETORIOFINAL=$DIRETORIO2
;;


*) dialog --title 'ERRO' --msgbox 'Não pode ser feita a busca, talvez você não tenha seguido os padrões.' 0 0 ;;


esac


ls -1 $DIRETORIOFINAL/*.sh >> $tmp 2> /dev/null

for i in `more $tmp`; do
grep -n "$PALAVRA" "$i"
done

rm -rf $tmp
exit 1

===================================================

pelo visto soh está funcionando se vc escolher o diretorio personalizado,

na linha "ls -1 $DIRETORIOFINAL/*.sh >> $tmp 2> /dev/null"

eh onde vc vai escolher a extenção do arquivo, nesse caso ele vai somente olhar os arquivos que terminam com .sh

ainda nao descobri um jeito de listar somente os arquivo em texto puro

11. Re: Scritp de busca

Enviado em 23/01/2010 - 17:42h

qual ambiente grafico vcs usam?? gnome??? kde??

se quiser eu faço com o zenity ou gdialog para gnome

ou o kdialog para o kde

de respostas com o resultado

12. Resolvido

Enviado em 05/02/2010 - 11:26h

Não amigo apenas trabalhamos com linha de comando mais muito agradecido mesmo, juntei um pouco de cada e consegui fazer o script que eu queria logo abaixo.
abraços a todos ...
#!/bin/bash

bancodados=bd.txt
menu(){
clear
echo ".::Pesquisa de programas::."
echo
echo "1. Novo Cadastro"
echo "2. Alterar Cadastro"
echo "3. Excluir Cadastro"
echo "4. Pesquisar Cadastro"
echo "5. Listar Programas"
echo "6. Sair"
echo
echo "Digite uma Opcao: "
read opcaom
case $opcaom in
1) cadastro ;;
2) altera ;;
3) exclui ;;
4) pesquisa ;;
5) lista ;;
6) sleep; clear; exit ;;
*) echo "Opcao nao Encontrada..."; echo ; menu ;;
esac
}
cadastro(){
clear
echo "Novo Cadastro..."
echo
arq='bd.txt'
if [ -f $arq ]
then
echo "Arquivo para Salvar Existe..."
else
echo "Arquivo para Salvar Nao existe..."
echo "Criando Arquivo para Salvar..."
echo "sleep 2 "
touch bd.txt
echo "Arquivo Criado com Sucesso..."
fi
echo
echo "Digite o Nome do Programa: "
read cadnome
echo "Digite a funcao desse programa: "
read cadfuncao
echo
echo -n "Confirma? (s/n): "
read resp
if [ $resp = "s" ]; then
echo "Salvando..."
echo
echo "$cadnome ; $cadfuncao" >> $bancodados
else
echo "Cadastro nao Salvo..."
fi
sleep 3
echo "Tecle enter para voltar ao Menu"
read
menu
}
pesquisa(){
clear
echo "Pesquisando..."
echo
echo "Digite o nome para Pesquisar: "
read pesqnome
echo "Nomes Encontrados..."
grep -i $pesqnome $bancodados
echo
sleep 3
echo "Tecle enter para voltar ao Menu"
read
menu
}
lista(){
clear
echo "Listando..."
echo
echo "Lista de programas..."
sort $bancodados
echo
sleep 3
echo "Tecle enter para voltar ao Menu"
read
menu
}
exclui(){
clear
echo "Excluindo..."
echo
echo "Lista de programas..."
sort $bancodados
echo
echo "Digite o nome do programa para Excluir: "
echo "Apenas Enter para excluir Todos: "
read exnome
echo
sleep 1;
cat $bancodados | grep -iv $exnome > bdtmp.txt
rm $bancodados
cp bdtmp.txt $bancodados
rm bdtmp.txt
echo "Programa Excluido..."
echo
sleep 3
echo "Tecle enter para voltar ao Menu"
read
menu
}
altera(){
clear
echo "Alterando..."
echo
echo "Programas da Lista..."
sort $bancodados
echo
echo "Digite o nome do programa para Alterar: "
read altnome
cat $bancodados | grep -iv $altnome > bdtmp.txt
rm $bancodados
cp bdtmp.txt $bancodados
rm bdtmp.txt
echo "Digite os novos dados desse programa: "
read altdados
echo "$altnome ; $altdados" >> $bancodados
echo
echo "Alterando..."
sleep 3
echo "Tecle enter para voltar ao Menu"
read
menu
}
menu




01 02

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder