Script para comparar o “tamanho do arquivo” com “sobrenome do arquivo” e, se não for correspondido, exclua o arquivo

1

No meu ambiente, estaremos recebendo arquivos de clientes em nosso servidor Sftp. O Sftp processa os arquivos e os move para outra ferramenta, acrescentando o tamanho do arquivo no final do nome do arquivo. Por exemplo, samplefile.20150706 do tamanho 1024 seria criado como samplefile.20150706.1024 .

Se o tamanho e o nome do arquivo (a última parte após . ) coincidirem, nossa ferramenta irá selecionar o arquivo e enviá-lo para o ETL. Se o arquivo permanecer nesse local por mais de uma hora (não processado devido a tamanho e nome sem correspondência), a ferramenta nos enviará alertas, pois os arquivos têm mais de uma hora de duração.

Eu estou procurando por comandos, que irão extrair a última parte do nome do arquivo e compará-lo com o tamanho do arquivo e, eventualmente, excluir o arquivo.

    
por Kannan AnandaKrishnan 06.07.2015 / 13:40

2 respostas

4

Obtenha o tamanho do arquivo :

size="$(stat --printf="%s" "$path")"

Obtenha o caminho sem a última extensão :

path_without_extension="${path%.*}"

Compare os dois:

[ "${path_without_extension}.${size}" = "$path" ]
    
por 06.07.2015 / 14:00
-1

ls -l | awk '{print $5}' fornece o tamanho do seu arquivo
echo file_name | awk -F"." '{print $3}' fornece o tamanho do arquivo extraído do nome.

a='ls -l | awk '{print $5}'' b='echo file_name | awk -F"." '{print $3}'' if [ $a -eq $b ] then echo "you can do your processing here" fi

    
por 06.07.2015 / 13:55