Filtrar arquivo [RESOLVIDO]

1. Filtrar arquivo [RESOLVIDO]

henrique
henriquew

(usa Ubuntu)

Enviado em 02/10/2015 - 23:50h

Boa noite galera,

strings /var/spool/cups/$nome_arq_job1 > /var/spool/cups/novo_job

Estou passando todas as informações de ($nome_arq_job1) para (novo_job)
como faço para armazenar essas informações do novo_job em uma variavel ou vetor para trabalhar/filtrar informações dessas strings nele contido??

Tentei o seguinte:

arquivo = `cat /var/spool/cups/novo_job` porém isso me retorna o seguinte erro:
arquivo: comando não encontrado.

alguem sabe como posso fazer isso??? obrigado abraço!!!!!!!!



  


2. Re: Filtrar arquivo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/10/2015 - 23:57h

Você não pode deixar espaços em branco em ambos os lados do sinal de igual.

Ex:

arquivo = `comando` # (errado)
arquivo=`comando` # (certo)

--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


3. Re: Filtrar arquivo [RESOLVIDO]

henrique
henriquew

(usa Ubuntu)

Enviado em 03/10/2015 - 00:36h

listeiro_037 escreveu:

Você não pode deixar espaços em branco em ambos os lados do sinal de igual.

Ex:

arquivo = `comando` # (errado)
arquivo=`comando` # (certo)

--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden




Então cara, corrigiu o problema, no entanto ainda não esta funcionando como quero,

strings /var/spool/cups/$nome_arq_job1 > /var/spool/cups/novo_job
chmod 775 /var/spool/cups/novo_job
arquivo=`cat /var/spool/cups/novo_job`
impressora_enviada=`cat $arquivo | grep 'ipp:' | tail -1`
rm -f /var/spool/cups/novo_job

A variável $nome_arq_job1 esta em /var/spool/cups com nome c0001 e nao consigo ler as informações que ele possui, porisso passo eles porisso passo as informações pelo comando string para novo_job.
porem o comando arquivo=`cat /var/spool/cups/novo_job` da erro, eu precisaria pegar um trecho de linha contido nesse arquivo depois disso faço um rm para exclui-lo! Tens alguma ideia??


4. Re: Filtrar arquivo [RESOLVIDO]

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 03/10/2015 - 02:35h

henriquew escreveu:

listeiro_037 escreveu:

Você não pode deixar espaços em branco em ambos os lados do sinal de igual.

Ex:

arquivo = `comando` # (errado)
arquivo=`comando` # (certo)

--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden




Então cara, corrigiu o problema, no entanto ainda não esta funcionando como quero,

strings /var/spool/cups/$nome_arq_job1 > /var/spool/cups/novo_job
chmod 775 /var/spool/cups/novo_job
arquivo=`cat /var/spool/cups/novo_job`
impressora_enviada=`cat $arquivo | grep 'ipp:' | tail -1`
rm -f /var/spool/cups/novo_job

A variável $nome_arq_job1 esta em /var/spool/cups com nome c0001 e nao consigo ler as informações que ele possui, porisso passo eles porisso passo as informações pelo comando string para novo_job.
porem o comando arquivo=`cat /var/spool/cups/novo_job` da erro, eu precisaria pegar um trecho de linha contido nesse arquivo depois disso faço um rm para exclui-lo! Tens alguma ideia??


Descreve melhor o seu cenário. O que eu consegui entender foi que você quer transformar um arquivo cheio de linhas em uma array? Se for isso, o melhor que você faz é assim:
variavel_array=$(cat arquivo_origem | tr -s '\n' ' ') 

Cada caractere de fim de linha vai ser substituído por um espaço em branco. Isso deve ser o que você quer, se eu entendi direito.

--
Luís Fernando Carvalho Cavalheiro
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta


5. Re: Filtrar arquivo [RESOLVIDO]

henrique
henriquew

(usa Ubuntu)

Enviado em 03/10/2015 - 07:46h

lcavalheiro escreveu:

henriquew escreveu:

listeiro_037 escreveu:

Você não pode deixar espaços em branco em ambos os lados do sinal de igual.

Ex:

arquivo = `comando` # (errado)
arquivo=`comando` # (certo)

--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden




Então cara, corrigiu o problema, no entanto ainda não esta funcionando como quero,

strings /var/spool/cups/$nome_arq_job1 > /var/spool/cups/novo_job
chmod 775 /var/spool/cups/novo_job
arquivo=`cat /var/spool/cups/novo_job`
impressora_enviada=`cat $arquivo | grep 'ipp:' | tail -1`
rm -f /var/spool/cups/novo_job

A variável $nome_arq_job1 esta em /var/spool/cups com nome c0001 e nao consigo ler as informações que ele possui, porisso passo eles porisso passo as informações pelo comando string para novo_job.
porem o comando arquivo=`cat /var/spool/cups/novo_job` da erro, eu precisaria pegar um trecho de linha contido nesse arquivo depois disso faço um rm para exclui-lo! Tens alguma ideia??


Descreve melhor o seu cenário. O que eu consegui entender foi que você quer transformar um arquivo cheio de linhas em uma array? Se for isso, o melhor que você faz é assim:
variavel_array=$(cat arquivo_origem | tr -s '\n' ' ') 

Cada caractere de fim de linha vai ser substituído por um espaço em branco. Isso deve ser o que você quer, se eu entendi direito.

--
Luís Fernando Carvalho Cavalheiro
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta



Explicando melhor, a variavel $nome_arq_job1 é o job de cotrole c0000xxx, nesse arquivo eu não consigo fazer por enxemplo:
dono_job=`cat $SPOOL_FILA$nome_arq_job1 | grep '%%For:' | tail -n 1 | cut -f2 -d " " | sed 's/^M//'` pois da um erro dizendo que é uma sequencia ou algo binário. Então resolvi usar o comando strings e jogar tudo para a o arquivo novo_job:
strings /var/spool/cups/$nome_arq_job1 > /var/spool/cups/novo_job
Neste arquivo novo_job, preciso buscar informações que utilizo no shell, que é um intervalo de texto que contem:
'ipp://localhost/printers/IMPRESSORA' e armazenar a 'IMPRESSORA' deste intervalo em uma variável para seguir com os testes :)

Teu comando variavel_array=$(cat arquivo_origem | tr -s '\n' ' ') da o seguinte erro:
try cat opcao --r invalida.

Tem alguma idéia de como fazer isso??







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts