Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

1. Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

Rodrigo Aurélio
McLovim

(usa Ubuntu)

Enviado em 14/07/2011 - 15:14h

Prezados, criei um script para fazer backup de umas informações fiscais. Nesse script eu utilizo o comando:

cat "arquivo" |grep "dados" |head 1

Executei o mesmo script em mais de 100 máquinas com as mesmas configurações (espelhos), porém, um umas máquinas isoladas quando eu executo esse comando no shell me retorna essa mensagem:

Arquivo binário (entrada padrão) casa com o padrão

Com isso implica no mal funcionamento do meu script, pq não consegue colher os dados necessários para o backup.

Alguém pode me dar uma luz?


  


2. Re: Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 14/07/2011 - 15:27h

Talvez o bash não seja o interpretador de comandos padrão nessa máquina. Coloque a linha abaixo no seu script:

#!/bin/bash

Q em qq máquina, o sistema operacional irá ter q interpretar seu script através do bash.


3. Re: Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

Rodrigo Aurélio
mclovim

(usa Ubuntu)

Enviado em 14/07/2011 - 16:20h

Bem lembrado, eu nao tinha parado pra pensar nisso. Em um dos testes coloquei no lugar do bash o sh. Acho q a versao final do script ta assim. Vou verificar e retorno.

Valeu.


4. Re: Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

Rodrigo Aurélio
McLovim

(usa Ubuntu)

Enviado em 14/07/2011 - 16:42h

Bem, verifique e estava #/bin/sh. Porém, mesmo alterando não pra bash não mudou muita coisa.

Se eu executar o comando no terminal, fora do script, também não funciona. Apresentando a mesma mensagem.


5. Re: Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 14/07/2011 - 16:46h

Kra, faltou uma exclamação na linha q passei:

#!/bin/bash


6. Re: Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

Rodrigo Aurélio
McLovim

(usa Ubuntu)

Enviado em 14/07/2011 - 16:51h

Bem, ele inicia com #!/bin/bash. Já havia verificado isso. Porém, como eu falei antes mesmo usando apenas o comando no terminal, fora do script apresenta o erro. Creio que seja algum problema quando ele arquivo é gerado. Pois enviei o arquivo para a minha máquina e apresentou o mesmo erro.


7. Re: Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 14/07/2011 - 16:57h

Então tenta assim:

# bash -x script.sh

Pra v aonde q tá o erro.


8. Re: Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

Rodrigo Aurélio
McLovim

(usa Ubuntu)

Enviado em 14/07/2011 - 17:06h

Renato, o script roda normal. eu utilizo esse comando:

modimp=`cat espelhomfd_data.txt |grep FAB: | cut -c 5-7 |head -1`

Com isso, eu colho umas informações para renomear o arquivo de espelhomfd_data.txt para um padrão meu, que é numero da filial, impressora e data respectivamente.

Como ao executar o comando ele não retorna esses dados, o arquivo retorna ".txt".

Meu problema é só ao executar esse comando. E não sei o por que.



9. Re: Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 14/07/2011 - 17:14h

Então execute essa linha em separado (sem armazenar na variável) e veja se o resultado é o esperado. Se sair algo d errado, talvez vc terá d modificar o teor do comando.


10. Re: Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

Rodrigo Aurélio
McLovim

(usa Ubuntu)

Enviado em 14/07/2011 - 17:19h

Essa mensagem que postei como tópico, é o que retorna quando executo sem guardar na variável. Ela apresenta sempre que eu uso o |grep nesse arquivo. Em outros arquivos o cat seguido do |grep funciona normal.




11. Re: Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 14/07/2011 - 17:24h

Uma tentativa: por existir o comando ":" (sem aspas), coloque o termo d procura do grep entre aspas pra v se resolve:

# cat espelhomfd_data.txt |grep "FAB:" | cut -c 5-7 |head -1


12. Re: Arquivo binário (entrada padrão) casa com o padrão [RESOLVIDO]

Rodrigo Aurélio
McLovim

(usa Ubuntu)

Enviado em 14/07/2011 - 17:30h

retorna a mesma mensagem...


[root@XXX loja]# cat espelhomfd_15-06-2011.txt |head -1003 |grep "FAB"
Arquivo binário (entrada padrão) casa com o padrão
[root@XXXloja]#




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts