shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] [Ajuda] Script de busca -- Ajuda


From: Paulo Bettega
Subject: Re: [shell-script] [Ajuda] Script de busca -- Ajuda
Date: Tue, 10 Jun 2014 15:19:36 -0300
User-agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.5.0

Olá Rodrigo, a saída que vc quer parece um grep simples na lista de
arquivos, será que não?

cat arq-path-completo.txt | xargs -i grep -H x {}

Interessante que o grep sozinho lista o arquivo e a linha com o padrão,
mas recebendo os arquivos do xargs, o grep só lista a linha, sem
o nome do arquivo.

$ grep brasil /etc/slackpkg/mirrors*
/etc/slackpkg/mirrors:# ftp://ftp.slackware-brasil.com.br/slackware-14.1/
/etc/slackpkg/mirrors:# http://ftp.slackware-brasil.com.br/slackware-14.1/
/etc/slackpkg/mirrors:# ftp://ftp.slackware-brasil.com.br/slackware-current/
/etc/slackpkg/mirrors:#http://ftp.slackware-brasil.com.br/slackware-current/
/etc/slackpkg/mirrors~:# ftp://ftp.slackware-brasil.com.br/slackware-14.1/
/etc/slackpkg/mirrors~:# http://ftp.slackware-brasil.com.br/slackware-14.1/
/etc/slackpkg/mirrors~:# ftp://ftp.slackware-brasil.com.br/slackware-current/
/etc/slackpkg/mirrors~:#http://ftp.slackware-brasil.com.br/slackware-current/

$ ls /etc/slackpkg/mirrors*|xargs -i grep brasil {}
# ftp://ftp.slackware-brasil.com.br/slackware-14.1/
# http://ftp.slackware-brasil.com.br/slackware-14.1/
# ftp://ftp.slackware-brasil.com.br/slackware-current/
#http://ftp.slackware-brasil.com.br/slackware-current/
# ftp://ftp.slackware-brasil.com.br/slackware-14.1/
# http://ftp.slackware-brasil.com.br/slackware-14.1/
# ftp://ftp.slackware-brasil.com.br/slackware-current/
#http://ftp.slackware-brasil.com.br/slackware-current/

$ ls /etc/slackpkg/mirrors*|xargs -i grep -H brasil {}
/etc/slackpkg/mirrors:# ftp://ftp.slackware-brasil.com.br/slackware-14.1/
/etc/slackpkg/mirrors:# http://ftp.slackware-brasil.com.br/slackware-14.1/
/etc/slackpkg/mirrors:# ftp://ftp.slackware-brasil.com.br/slackware-current/
/etc/slackpkg/mirrors:#http://ftp.slackware-brasil.com.br/slackware-current/
/etc/slackpkg/mirrors~:# ftp://ftp.slackware-brasil.com.br/slackware-14.1/
/etc/slackpkg/mirrors~:# http://ftp.slackware-brasil.com.br/slackware-14.1/
/etc/slackpkg/mirrors~:# ftp://ftp.slackware-brasil.com.br/slackware-current/
/etc/slackpkg/mirrors~:#http://ftp.slackware-brasil.com.br/slackware-current/


Abraços Paulo Bettega


On 10-06-2014 14:35, Rodrigo Cunha address@hidden [shell-script] wrote:
Olá srs.

Gostaria de uma ajuda, estou em um ambiente de testes e criei um diretório com 
os seguintes arquivos :

./arq.9

./arq.3.erro.nginx-log

./busca.texto.d/arq.01

./arq.5

./arq.7

./arq.1.log.gz

./arq.4

./arq.1.log.bkp

./arq.8

./arq.2.log.nginx-erro

./cria.arquivos.sh <http://cria.arquivos.sh>

./arq.6

Meu objetivo é criar um script que leia os arquivos deste diretório e insira os 
dados da pesquisa
com o path completo em um txt, o que consegui fazer, no entanto inseri uma string 
"x" no arquivo
./arq.4 e quero montar um script que leia o arquivo de texto criado e me 
reporte o resultado de qual
o arquivo está com a string x.

A minnha intenção é montar um script de pesquisa de strings em logs, para 
ambientes que eu não
domino totalmente, me facilitando assim no momento do troubleshooting com ferramentas 
"nativas" do
linux, uma vez que nem sempre tenho permissão dos gerentes de instalar 
programas nestes

Sistemas.

Criei o pequeno codigo abaixo:

#!/bin/bash

if [ ! -d busca.texto.d ];

then

mkdir busca.texto.d

if [ ! -e busca.texto.d/arq.01 ];

then

touch

busca.texto.d/arq.01

fi

fi

find `pwd` -iname "*arq*" > busca.texto.d/arq.01

#Fim

Cheguei a conclusão que devo inserir esta linha para conseguir o que quero :

$cat busca.texto.d/arq.01 |awk '{printf "cat "$1" |grep -i 'x' " "\n"}'| sh+

Mas o erro é que ele me da a quantidade de x que tenho e não o arquivo em que o 
x está inserido, no
caso eu gostaria de uma resposta com a seguinte formatação:

./arq.4:x

Obrigado pela ajuda.



--
Atenciosamente,
Rodrigo Silva Cunha - RJ - São Gonçalo
e-mail : address@hidden <mailto:address@hidden>

"Servo do Reino de Deus.
  Servo, do Rei e Líder  Jesus Cristo de Nazaré."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]