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