Dificuldade no comando GREP utilizando mais de uma variável [RESOLVIDO]

1. Dificuldade no comando GREP utilizando mais de uma variável [RESOLVIDO]

Walker Luiz de Freitas
WalkerPR

(usa Linux Mint)

Enviado em 28/11/2018 - 11:34h


Estou com dificuldade na linha do comando grep e preciso de ajuda dos nobres amigos do VOL.

Montei um Script para percorrer em uma pasta onde utilizo o sufixo do nome arquivo localizado na pasta para realizar uma busca dentro de arquivos texto em vários diretórios. O resultado a retornar seria o diretório onde se localiza o arquivo com o texto existente.

Em resumo:


Esta linha de comando funciona. A string a procurar está fixa!
DESTINO=`grep -r --include="ret_*.txt" 'AR891239347FB' /home/servopa/$ANO* | cut -d '/' -f 1-4,7-`

A qual me retorna (o que eu preciso):
/dados/cliente/20181116

# Nesta, utilizo apenas a variável $ANO no comando grep para alimentar a variável $DESTINO.




Já esta outra não retorna nada! Nesta, a string a procurar é uma variável.
DESTINO=$(grep -r --include="ret_*.txt" $RASTREIO /dados/cliente/$ANO* | cut -d '/' -f 1-4,7-)


Informações adicionais do Script:
ANO=`date +%Y`
RASTREIO=${dir%.*}


Poderiam me auxiliar com esta questão por favor?!
Já procurei em vários sites mundo afora e encontro poucas situações, mas nenhuma a me auxiliar


  


2. MELHOR RESPOSTA

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 03/12/2018 - 11:13h

Jovem ... o problema é nessa estrutura sua ... aqui fiz e funcionou ( de novo ) 100%

fiz um diretório ( 2018 ) com 3 subdir, cada 1 com uma imagem dentro
mauricio@phantom ~ $ ls -R 2018
2018:
fev jan mar

2018/fev:
fev.JPG

2018/jan:
jan.JPG

2018/mar:
mar.JPG
mauricio@phantom ~ $


fiz um diretório com os arquivos 'txt e dentro de alguns coloquei os 'sufixos' das imagens
mauricio@phantom ~ $ ls -R txt
txt:
1.txt 2.txt 3.txt 4.txt
mauricio@phantom ~ $ ls txt
1.txt 2.txt 3.txt 4.txt
mauricio@phantom ~ $ cat txt/1.txt
fev
mauricio@phantom ~ $ cat txt/2.txt
mar
mauricio@phantom ~ $ cat txt/3.txt
mauricio@phantom ~ $ cat txt/4.txt
jan
mauricio@phantom ~ $


source
#!/bin/bash
EXT_IMG="JPG" # Extensão a ser listada
ARQ_IMG=`echo $HOME/2018/` # Diretório das Imagens
ARQ_TXT=`echo $HOME/txt/` # Diretório das 'txt'
for x in `ls -R $ARQ_IMG | grep $EXT_IMG`;do
SUF=`echo $x | cut -d'.' -f1`
grep --color $SUF $ARQ_TXT/*.txt
done


resultado
mauricio@phantom ~ $ ./sh.sh 
/home/mauricio/txt//1.txt:fev
/home/mauricio/txt//4.txt:jan
/home/mauricio/txt//2.txt:mar
mauricio@phantom ~ $


OBS: perceba que na variável 'EXT_IMG' coloquei "JPG" maiusculo, pq a as extensões estão em maisculo ... ou seja é case sensitive.

Agora se vira no 30 aí.

Abçs

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------


3. Re: Dificuldade no comando GREP utilizando mais de uma variável [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 28/11/2018 - 20:19h

WalkerPR escreveu:


Estou com dificuldade na linha do comando grep e preciso de ajuda dos nobres amigos do VOL.

Montei um Script para percorrer em uma pasta onde utilizo o sufixo do nome arquivo localizado na pasta para realizar uma busca dentro de arquivos texto em vários diretórios. O resultado a retornar seria o diretório onde se localiza o arquivo com o texto existente.

Em resumo:


Esta linha de comando funciona. A string a procurar está fixa!
DESTINO=`grep -r --include="ret_*.txt" 'AR891239347FB' /home/servopa/$ANO* | cut -d '/' -f 1-4,7-`

A qual me retorna (o que eu preciso):
/dados/cliente/20181116

# Nesta, utilizo apenas a variável $ANO no comando grep para alimentar a variável $DESTINO.




Já esta outra não retorna nada! Nesta, a string a procurar é uma variável.
DESTINO=$(grep -r --include="ret_*.txt" $RASTREIO /dados/cliente/$ANO* | cut -d '/' -f 1-4,7-)


Informações adicionais do Script:
ANO=`date +%Y`
RASTREIO=${dir%.*}


Poderiam me auxiliar com esta questão por favor?!
Já procurei em vários sites mundo afora e encontro poucas situações, mas nenhuma a me auxiliar


Boa noite.
1 - Observe que a var RASTREIO é vazia!
2 - dir é um comando...
3 - A atribuição da var RASTREIO=${dir%.*}, não procede.
Qual o valor pretendido para a var RASTREIO?
Att.:
Marcelo Oliver



4. Re: Dificuldade no comando GREP utilizando mais de uma variável [RESOLVIDO]

Walker Luiz de Freitas
WalkerPR

(usa Linux Mint)

Enviado em 29/11/2018 - 08:29h

msoliver escreveu:

Boa noite.
1 - Observe que a var RASTREIO é vazia!
2 - dir é um comando...
3 - A atribuição da var RASTREIO=${dir%.*}, não procede.
Qual o valor pretendido para a var RASTREIO?
Att.:
Marcelo Oliver


Olá msoliner, obrigado pelo retorno.

Em uma pasta terei arquivos de imagens JPG, onde preciso capturar o prefixo do arquivo (nome sem a extensão) e esta informação procurá-la dentro de arquivos TXT em outras pasta. Por exemplo:

Dentro de uma pasta tenho os arquivos:
AR857405781FB.JPG
AR857405795FB.JPG
AR857405804FB.JPG
AR857405818FB.JPG

Onde dentro de um laço de repetição, eu preciso capturar o nome (prefixo, apenas o "AR857405781FB") e alimentar a variável $RASTREIO. Essa informação da variável é a string que eu preciso procurar na linha de comando do grep.

Eu havia tentado direto a sintaxe ${dir%.*}, onde esta é o prefixo do arquivo, na procura do comando grep. Mas como não tive sucesso, tentei jogar esta informação na variável e ela utilizá-la na linha do grep.

Como eu poderia atribuir o prefixo do nome do arquivo nesta variável?! Poderia me auxiliar, por favor?!

--------------------------------------------------------------
"Linux: several flavors, a single option: -Freedom of choice!"


5. Re: Dificuldade no comando GREP utilizando mais de uma variável

Paulo Bonfanti
pbonfanti

(usa Debian)

Enviado em 29/11/2018 - 10:54h

Para mim ainda está muito confuso o que você quer, se você disser linha a linha o que você quer que o script faça em cada etapa fica mais fácil. Para buscar varios padrões com o grep eu prefiro criar um arquivo de lista e carregar no grep, como abaixo:

#!/bin/bash
#Rastreador

function indice {
#Gera lista de prefixos de imagem

#Criando arquivo temporario
touch /tmp/indice;

for FILE in $(ls AR857405*.JPG | cut -d \. -f 1);
do
#echo "$FILE";
echo "$FILE" >> /tmp/indice
done
#indice foi populado
}

indice;

#buscando padrao dentro da lista do indice, se voce quer apenas listar o nome dos arquivos
#que casaram o padrao o parametro -l faz isso:
grep -rlf /tmp/indice ret*.txt

E também eu uso comandos complexos em linha de console, mas em scripts eu prefiro deixar as coisas mais separadas que torna mais facil de isolar erro.


6. Re: Dificuldade no comando GREP utilizando mais de uma variável [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 29/11/2018 - 12:00h

v se é isso que vc precisa

#!/bin/bash
for x in `ls *.JPG`; do
SUF=`echo $x | cut -d '.' -f 1`
grep $SUF /home/mauricio/teste/*.txt
done


mauricio@phantom ~/teste $ ls
1.txt 3.txt AR857405795FB.JPG AR857405818FB.JPG
2.txt AR857405781FB.JPG AR857405804FB.JPG sh.sh
mauricio@phantom ~/teste $ cat 1.txt
AR857405781FB
mauricio@phantom ~/teste $ cat 2.txt
GOIABA
mauricio@phantom ~/teste $ cat 3.txt
AR857405804FB
mauricio@phantom ~/teste $ ./sh.sh
/home/mauricio/teste/1.txt:AR857405781FB
/home/mauricio/teste/3.txt:AR857405804FB
mauricio@phantom ~/teste $



------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



7. Re: Dificuldade no comando GREP utilizando mais de uma variável

Walker Luiz de Freitas
WalkerPR

(usa Linux Mint)

Enviado em 29/11/2018 - 13:45h

pbonfanti escreveu:

Para mim ainda está muito confuso o que você quer, se você disser linha a linha o que você quer que o script faça em cada etapa fica mais fácil. ...


Olá pbonfanti,

Abaixo descrevo o que busco no Script e na sequência toda a sua sintaxe.

1.) Percorrer os arquivos JPG existentes na pasta de digitalização.

2.) Capturar o prefixo do arquivo (código de rastreio AR Correios) e armazená-lo em variável.
Exemplo:
- arquivo: AR857405781FB.JPG
- $RASTREIO: AR857405781FB (prefixo do arquivo JPG)

3.) Procurar o conteúdo de $RASTREIO em determinada pasta alimentar a variável $DESTINO.
- Esta, deveria receber: /home/servopa/20181116 (variável $DESTINO).

4.) Converter a imagem JPG da pasta percorrida e salvar o arquivo convertido (PDF) na pasta que a variável $DESTINO deveria receber.

Meu único problema no Script abaixo é que a variável destino não está sendo alimentada, devido ao fato de eu utilizar uma variável na STRING a buscar. O retorno que eu preciso neste grep é saber em qual pasta a STRING, dentro do arquivo, foi localizada. Por isso utilizo no final do comando grep a sintaxe: | cut -d '/' -f 1-4,7-.

Desculpa pelo texto longo acima. Quis explicar a rotina que montei no Script.


# Rotina do servopa X, lotes impressos.
# Tratar arquivos do vindos INFOAC e do AtualGED.
#
# Criacao.: Walker Luiz de Freitas - 20/11/2018.
# Server..: 10.10.0.17
# Hostname: advftp01
# Scripts.: /srv/scripts

#!/bin/bash
# IFS=$'\n'

ANO=`date +%Y`

# =========================================
# PERCORRER PASTAS DE LOTES E PROCESSA-LAS.
# SERVIDOR DE FTP, PASTA DO CLIENTE.
# =========================================
cd /home/servopa/temp_robo

for i in * ; do
if [ -d "$i" ]
then
cd "$i"
declare -i j=0

for dir in *
do
j=$(expr JPG + $j)
arq[$j]=$dir


# ======================================
# CONVERTER FORMATO .JPG EM FORMATO .PDF
# ======================================
if [ "${arq[$j]##*.}" = "JPG" ]
then

RASTREIO=`echo $dir | cut -d '.' -f 1`
# RASTREIO=${dir%.*}

DESTINO=$(grep -r --include="ret_*.txt" $RASTREIO /home/servopa/$ANO* | cut -d '/' -f 1-4,7-)
# DESTINO=`grep -r --include="ret_*.txt" 'AR891239347FB' /home/servopa/$ANO* | cut -d '/' -f 1-4,7-`

echo variavel DESTINO...: $DESTINO
SAIDA[$j]=${dir%.*}".PDF"

# convert "${arq[$j]}" -flatten "$DESTINO"/"${SAIDA[$j]}"


# =============================================
# RETIRAR CABECALHO E INSERIR 'RAR' NAS LINHAS.
# =============================================
# else
# sed -i "/CODIGO_BARRAS/d" "${arq[$j]}"
# sed -i "s/AR/RARAR/g" "${arq[$j]}"
fi

done
echo "$i" processado em `date +%Y-%m-%d` as `date +%H:%M` onde JPG convertido em PDF. >> /var/log/processos/GED_servopa.log
cd ..
fi
done



--------------------------------------------------------------
"Linux: several flavors, a single option: - Freedom of choice!"


8. Re: Dificuldade no comando GREP utilizando mais de uma variável [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 29/11/2018 - 20:59h

WalkerPR escreveu:

msoliver escreveu:

Boa noite.
1 - Observe que a var RASTREIO é vazia!
2 - dir é um comando...
3 - A atribuição da var RASTREIO=${dir%.*}, não procede.
Qual o valor pretendido para a var RASTREIO?
Att.:
Marcelo Oliver


Olá msoliner, obrigado pelo retorno.

Em uma pasta terei arquivos de imagens JPG, onde preciso capturar o prefixo do arquivo (nome sem a extensão)
e esta informação procurá-la dentro de arquivos TXT em outras pasta. Por exemplo:

Dentro de uma pasta tenho os arquivos:
AR857405781FB.JPG
AR857405795FB.JPG
AR857405804FB.JPG
AR857405818FB.JPG

Onde dentro de um laço de repetição, eu preciso capturar o nome (prefixo, apenas o "AR857405781FB") e alimentar a variável $RASTREIO.
Essa informação da variável é a string que eu preciso procurar na linha de comando do grep.

Eu havia tentado direto a sintaxe ${dir%.*}, onde esta é o prefixo do arquivo, na procura do comando grep. Mas como não tive sucesso, tentei jogar esta informação na variável e ela utilizá-la na linha do grep.

Como eu poderia atribuir o prefixo do nome do arquivo nesta variável?! Poderia me auxiliar, por favor?!

--------------------------------------------------------------
"Linux: several flavors, a single option: -Freedom of choice!"


Boa noite Walker, vamos ver se entendi . . .
ext="JPG"
for arq in $(ls -1 *.$ext);do
RASTREIO="${arq%.$ext}" #tira a extensão
egrep -rl "${RASTREIO}" /Diretorio/
done

Obs.:
Se no comando "ls -1" vc utilizar o caminho do dir, exemplo
ls -1 /media/user/IMAGENS/*.$ext
Deve usar o comando abaixo para definir a var RASTREIO.
RASTREIO="$(awk -F"/" '{print $NF}' <<< ${arq%.$ext})" 

Att.:
Marcelo Oliver


9. Re: Dificuldade no comando GREP utilizando mais de uma variável [RESOLVIDO]

Walker Luiz de Freitas
WalkerPR

(usa Linux Mint)

Enviado em 01/12/2018 - 13:08h

msoliver escreveu:
. . .
Boa noite Walker, vamos ver se entendi . . .
ext="JPG"
for arq in $(ls -1 *.$ext);do
RASTREIO="${arq%.$ext}" #tira a extensão
egrep -rl "${RASTREIO}" /Diretorio/
done

Att.:
Marcelo Oliver


Olá Marcelo,

O prefixo do arquivo AR891239347FB.JPG (prefico=AR891239347FB, sem a extensão) é o conteúdo de um arquivo TXT que eu preciso localizar em várias pastas. Pastas estas onde salvas algumas informações de movimentos de produção (nomenclatura das pastas YYYYMMDD ( /AnoMesDia).

Exemplo das pastas abaixo:

[root@advftp01 servopa]# ll
total 3996
drwxrwxrwx 2 servopa servopa 177 Jan 12 2017 20160804
drwxrwxrwx 2 servopa servopa 4096 Jan 12 2017 20160805
drwxrwxrwx 2 servopa servopa 98 Jan 12 2017 20160806
drwxrwxrwx 2 servopa servopa 6 Jan 12 2017 20160807
drwxrwxrwx 2 servopa servopa 6 Jan 12 2017 20160808
drwxrwxrwx 2 servopa servopa 219 Jan 12 2017 20160809
drwxrwxrwx 2 servopa servopa 4096 Jan 12 2017 20160812
drwxrwxrwx 2 servopa servopa 49152 Jan 12 2017 20160815
drwxrwxrwx 2 servopa servopa 4096 Jan 12 2017 20160818
drwxrwxrwx 2 servopa servopa 4096 Jan 12 2017 20160819
drwxrwxrwx 2 servopa servopa 114 Jan 12 2017 20160820


Preciso descobrir em qual destas pastas acima, existe um arquivo TXT com a informação AR891239347FB (string procurada). Com o comando grep eu pretendia obter o endereço da pasta (caminho) e com isso pegar o arquivo imagem AR891239347FB.JPG e convertê-lo para AR891239347FB.PDF salvando este na pasta onde endereço retornado pelo comando grep.


--------------------------------------------------------------
"Linux: several flavors, a single option: - Freedom of choice!"


10. Re: Dificuldade no comando GREP utilizando mais de uma variável [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/12/2018 - 15:13h

WalkerPR escreveu:

msoliver escreveu:
. . .
Boa noite Walker, vamos ver se entendi . . .
ext="JPG"
for arq in $(ls -1 *.$ext);do
RASTREIO="${arq%.$ext}" #tira a extensão
egrep -rl "${RASTREIO}" /Diretorio/
done

Att.:
Marcelo Oliver


Olá Marcelo,

O prefixo do arquivo AR891239347FB.JPG (prefico=AR891239347FB, sem a extensão) é o conteúdo de um arquivo TXT que eu preciso localizar em várias pastas. Pastas estas onde salvas algumas informações de movimentos de produção (nomenclatura das pastas YYYYMMDD ( /AnoMesDia).

Exemplo das pastas abaixo:

[root@advftp01 servopa]# ll
total 3996
drwxrwxrwx 2 servopa servopa 177 Jan 12 2017 20160804
drwxrwxrwx 2 servopa servopa 4096 Jan 12 2017 20160805
drwxrwxrwx 2 servopa servopa 98 Jan 12 2017 20160806
drwxrwxrwx 2 servopa servopa 6 Jan 12 2017 20160807
drwxrwxrwx 2 servopa servopa 6 Jan 12 2017 20160808
drwxrwxrwx 2 servopa servopa 219 Jan 12 2017 20160809
drwxrwxrwx 2 servopa servopa 4096 Jan 12 2017 20160812
drwxrwxrwx 2 servopa servopa 49152 Jan 12 2017 20160815
drwxrwxrwx 2 servopa servopa 4096 Jan 12 2017 20160818
drwxrwxrwx 2 servopa servopa 4096 Jan 12 2017 20160819
drwxrwxrwx 2 servopa servopa 114 Jan 12 2017 20160820


Preciso descobrir em qual destas pastas acima, existe um arquivo TXT com a informação AR891239347FB (string procurada).
Com o comando grep eu pretendia obter o endereço da pasta (caminho) e com isso pegar o arquivo imagem AR891239347FB.JPG e convertê-lo para AR891239347FB.PDF salvando este na pasta onde endereço retornado pelo comando grep.


--------------------------------------------------------------
"Linux: several flavors, a single option: - Freedom of choice!"


Walker, boa tarde.
Esse "prefixo", que é o nome do arquivo sem a extensão,
É a var RASTREIO, certo?
A não ser que eu não tenha entendido direito,
O comando:
grep -rl "$RASTREIO" /DIRETÓRIO_ONDE_ESTÃO_AS_PASTAS_COM_OS_TXT/ #Onde vc deu o ls -l,  no exemplo acima. 

Vai te retornar o nome do arquivo que contem a var RASTREIO...
Note que o "caminho" é a partir do diretório onde o comando é executado.
Teste o script abaixo e verifique se a saída contém o que precisa.
ext="JPG"
for arq in $(ls -1 *.$ext);do
RASTREIO="${arq%.$ext}" #tira a extensão
CaminhoComArquivo=$(grep -rl "${RASTREIO}" /Diretorio/) #Busca pela var RASTREIO, se tiver mais de um resultado vai dar erro....
arquivo=$(awk -F"/" '{print $NF}' <<< "$CaminhoComArquivo") #Pega o nome do arquivo
pasta=${CaminhoComArquivo%"$arquivo"} #Tira o nome do arquivo e mantem somente o caminho.
echo "$CaminhoComArquivo $arquivo $pasta"
done

marcelo oliver


11. Re: Dificuldade no comando GREP utilizando mais de uma variável [RESOLVIDO]

Walker Luiz de Freitas
WalkerPR

(usa Linux Mint)

Enviado em 01/12/2018 - 18:22h

msoliver escreveu:
. . .
Teste o script abaixo e verifique se a saída contém o que precisa.
ext="JPG"
for arq in $(ls -1 *.$ext);do
RASTREIO="${arq%.$ext}" #tira a extensão
CaminhoComArquivo=$(grep -rl "${RASTREIO}" /Diretorio/) #Busca pela var RASTREIO, se tiver mais de um resultado vai dar erro....
arquivo=$(awk -F"/" '{print $NF}' <<< "$CaminhoComArquivo") #Pega o nome do arquivo
pasta=${CaminhoComArquivo%"$arquivo"} #Tira o nome do arquivo e mantem somente o caminho.
echo "$CaminhoComArquivo $arquivo $pasta"
done

marcelo oliver


Olá Marcelo,

Com base no script que você me sugeriu acima, fiz apenas modificações referente ao caminho.
O executei na pasta onde estão os arquivos de imagens JPG.
Onde set -x e set +x apenas para o script mostrar o retorno na tela das execuções.

ext="JPG"
for arq in $(ls -1 *.$ext);do
set -x
RASTREIO="${arq%.$ext}" #tira a extensão
CaminhoComArquivo=$(grep -rl "${RASTREIO}" /home/servopa/20181*/) #Busca pela var RASTREIO, se tiver mais de um resultado vai dar erro....
arquivo=$(awk -F"/" '{print $NF}' <<< "$CaminhoComArquivo") #Pega o nome do arquivo
pasta=${CaminhoComArquivo%"$arquivo"} #Tira o nome do arquivo e mantem somente o caminho.
set +x
echo "$CaminhoComArquivo . . . $arquivo . . . $pasta"
done


O retorno da execução estava trazendo as variáveis em branco, tal como minha rotina com o grep.

[root@advftp01 Lote_ 000364]# /srv/scripts/teste_vol.sh
++ RASTREIO=AR857405781FB
+++ grep -rl AR857405781FB /home/servopa/20181001/ /home/servopa/20181002/ /home/servopa/20181003/ /home/servopa/20181004/ /home/servopa/20181005/ /home/servopa/20181006/ /home/servopa/20181007/ /home/servopa/20181008/ /home/servopa/20181009/ /home/servopa/20181010/ /home/servopa/20181011/ /home/servopa/20181012/ /home/servopa/20181014/ /home/servopa/20181015/ /home/servopa/20181016/ /home/servopa/20181017/ /home/servopa/20181018/ /home/servopa/20181019/ /home/servopa/20181020/ /home/servopa/20181021/ /home/servopa/20181022/ /home/servopa/20181023/ /home/servopa/20181024/ /home/servopa/20181025/ /home/servopa/20181026/ /home/servopa/20181027/ /home/servopa/20181028/ /home/servopa/20181029/ /home/servopa/20181030/ /home/servopa/20181031/ /home/servopa/20181101/ /home/servopa/20181103/ /home/servopa/20181104/ /home/servopa/20181105/ /home/servopa/20181106/ /home/servopa/20181107/ /home/servopa/20181108/ /home/servopa/20181109/ /home/servopa/20181110/ /home/servopa/20181111/ /home/servopa/20181112/ /home/servopa/20181113/ /home/servopa/20181114/ /home/servopa/20181115/ /home/servopa/20181116/ /home/servopa/20181117/ /home/servopa/20181119/ /home/servopa/20181120/ /home/servopa/20181122/ /home/servopa/20181123/ /home/servopa/20181126/ /home/servopa/20181127/ /home/servopa/20181128/ /home/servopa/20181129/ /home/servopa/20181130/ /home/servopa/20181201/
++ CaminhoComArquivo=
+++ awk -F/ '{print $NF}'
++ arquivo=
++ pasta=
++ set +x
. . . . . .
++ RASTREIO=AR857405795FB
+++ grep -rl AR857405795FB /home/servopa/20181001/ /home/servopa/20181002/ /home/servopa/20181003/ /home/servopa/20181004/ /home/servopa/20181005/ /home/servopa/20181006/ /home/servopa/20181007/ /home/servopa/20181008/ /home/servopa/20181009/ /home/servopa/20181010/ /home/servopa/20181011/ /home/servopa/20181012/ /home/servopa/20181014/ /home/servopa/20181015/ /home/servopa/20181016/ /home/servopa/20181017/ /home/servopa/20181018/ /home/servopa/20181019/ /home/servopa/20181020/ /home/servopa/20181021/ /home/servopa/20181022/ /home/servopa/20181023/ /home/servopa/20181024/ /home/servopa/20181025/ /home/servopa/20181026/ /home/servopa/20181027/ /home/servopa/20181028/ /home/servopa/20181029/ /home/servopa/20181030/ /home/servopa/20181031/ /home/servopa/20181101/ /home/servopa/20181103/ /home/servopa/20181104/ /home/servopa/20181105/ /home/servopa/20181106/ /home/servopa/20181107/ /home/servopa/20181108/ /home/servopa/20181109/ /home/servopa/20181110/ /home/servopa/20181111/ /home/servopa/20181112/ /home/servopa/20181113/ /home/servopa/20181114/ /home/servopa/20181115/ /home/servopa/20181116/ /home/servopa/20181117/ /home/servopa/20181119/ /home/servopa/20181120/ /home/servopa/20181122/ /home/servopa/20181123/ /home/servopa/20181126/ /home/servopa/20181127/ /home/servopa/20181128/ /home/servopa/20181129/ /home/servopa/20181130/ /home/servopa/20181201/
++ CaminhoComArquivo=
+++ awk -F/ '{print $NF}'
++ arquivo=
++ pasta=
++ set +x
. . . . . .
++ RASTREIO=AR857405804FB
+++ grep -rl AR857405804FB /home/servopa/20181001/ /home/servopa/20181002/ /home/servopa/20181003/ /home/servopa/20181004/ /home/servopa/20181005/ /home/servopa/20181006/ /home/servopa/20181007/ /home/servopa/20181008/ /home/servopa/20181009/ /home/servopa/20181010/ /home/servopa/20181011/ /home/servopa/20181012/ /home/servopa/20181014/ /home/servopa/20181015/ /home/servopa/20181016/ /home/servopa/20181017/ /home/servopa/20181018/ /home/servopa/20181019/ /home/servopa/20181020/ /home/servopa/20181021/ /home/servopa/20181022/ /home/servopa/20181023/ /home/servopa/20181024/ /home/servopa/20181025/ /home/servopa/20181026/ /home/servopa/20181027/ /home/servopa/20181028/ /home/servopa/20181029/ /home/servopa/20181030/ /home/servopa/20181031/ /home/servopa/20181101/ /home/servopa/20181103/ /home/servopa/20181104/ /home/servopa/20181105/ /home/servopa/20181106/ /home/servopa/20181107/ /home/servopa/20181108/ /home/servopa/20181109/ /home/servopa/20181110/ /home/servopa/20181111/ /home/servopa/20181112/ /home/servopa/20181113/ /home/servopa/20181114/ /home/servopa/20181115/ /home/servopa/20181116/ /home/servopa/20181117/ /home/servopa/20181119/ /home/servopa/20181120/ /home/servopa/20181122/ /home/servopa/20181123/ /home/servopa/20181126/ /home/servopa/20181127/ /home/servopa/20181128/ /home/servopa/20181129/ /home/servopa/20181130/ /home/servopa/20181201/
^C++ CaminhoComArquivo=
[root@advftp01 Lote_ 000364]#


Eu havia colocado a string de busca FIXA na linha de comando do grep para fazer um teste. Desta forma a linha de comando trás o resultado que preciso, onde apenas o caminho onde está localizado o arquivo que apresenta a informação "AR891239347FB" em seu conteúdo.
DESTINO=`grep -r --include="ret_*.txt" 'AR891239347FB' /home/servopa/$ANO* | cut -d '/' -f 1-4,7-` 


O resultado trazido é: /home/servopa/20181116

Mas como a string de busca não pode ser fixa, pois é o prefixo do nome da imagem JPG, . . . não está dando certo.

A luta continua! . . . rsrsrs!

--------------------------------------------------------------
"Linux: several flavors, a single option: - Freedom of choice!"


12. Re: Dificuldade no comando GREP utilizando mais de uma variável [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 01/12/2018 - 18:30h

.
.
Velho ... aquele pequeno loop que te mandei faz exatamente o q vc quer ... pega "sufixos" e procura nos arquivos. a única coisa que falta é vc adaptar na à sua realidade.


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts