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" ]
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.
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" ]
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
Tags find shell-script filenames size