「ファイルサイズ」と「ファイル性」を比較し、一致しない場合にファイルを削除するスクリプト

「ファイルサイズ」と「ファイル性」を比較し、一致しない場合にファイルを削除するスクリプト

私の環境では、クライアントからSftpサーバーにファイルを受け取ります。 Sftpはファイル名の末尾にファイルサイズを追加してファイルを処理し、他のツールに移動します。たとえば、samplefile.201507061024サイズはsamplefile.20150706.1024

ファイルサイズと名前(後の最後の部分.)が一致すると、ツールはファイルを選択してETLに送信します。ファイルが1時間以上そこにある場合(サイズと名前の不一致によって処理されない)、ファイルが1時間以上そこにあったため、ツールは警告を送信します。

私はファイル名の最後の部分を抽出し、ファイルサイズと比較して最終的にファイルを削除するコマンドを探しています。

答え1

ファイルサイズのインポート:

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

最後の拡張なしでパスを取得する:

path_without_extension="${path%.*}"

2つを比較します。

[ "${path_without_extension}.${size}" = "$path" ]

答え2

ls -l | awk '{print $5}'ファイルサイズが与えられたら、
echo file_name | awk -F"." '{print $3}'名前から抽出されたファイルサイズを指定してください。

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

関連情報