Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

fnds

[Shell Script] Erro: unexpected operator

Mensagens Recomendadas

fnds

O que o pedaço de código (horrível!) que se segue faz é verificar se existem dois ficheiros com a extensão $2 numa pasta $1 com o mesmo tamanho, se existir escreve o seu nome no ficheiro $FILE. É garantido que n

ao há 3 ou mais ficheiros na pasta com o mesmo tamanho.

Isto está a dar o erro [: 26: 94042: unexpected operator não sei porquê, o problema é nas linhas 4 e 5, se eu executar aquilo na consola não dá erro.

for f1 in $1/*.$2; do
for f2 in $1/*.$2; do
	if [ "$f1" != $FILE ] && [ "$f2" != $FILE ] && [ -f "$f1" ] && [ -f "$f2" ] && [ "$f1" != "$f2" ]; then
		s1=`wc -c "$f1" | grep -o [0-9]*`;
		s2=`wc -c "$f2" | grep -o [0-9]*`;
		if [ $s1 -eq $s2 ] && ! grep -q "$f2" $FILE; then
			echo "$f1 $f2" >> $FILE;
		fi;
	fi;
done;
done;

Se alguém tiver uma solução alternativa, menos bruta, para o problema diga :confused:

Mas para já quero perceber de onde vem aquele erro!

Cumprimentos.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fnds

Obrigado pela resposta.

Essa linha existe lá no ficheiro, o problema já está resolvido, era ali no grep da linha 4 e 5, quando o nome do ficheiro tinha números dava barraca, com um cut já dá.

Um obrigado ao Filipe Brandão pela ajuda.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.