用于比较“文件大小”与“文件姓氏”的脚本,如果不匹配则删除该文件

用于比较“文件大小”与“文件姓氏”的脚本,如果不匹配则删除该文件

在我的环境中,我们将从客户端接收文件到我们的 Sftp 服务器中。 Sftp 处理文件,并通过在文件名末尾附加文件大小将其移动到另一个工具。例如,samplefile.20150706大小为 1024 的将创建为samplefile.20150706.1024.

如果文件大小和名称( 后的最后一部分.)匹配,我们的工具将选择该文件并将其发送到 ETL。如果文件在该位置停留超过一小时(由于大小和名称不匹配而未处理),该工具将向我们发送警报,因为文件已存在超过一小时。

我正在寻找命令,它将提取文件名的最后部分并将其与文件大小进行比较,并最终删除该文件。

答案1

获取文件大小:

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

获取不带最后一个扩展名的路径:

path_without_extension="${path%.*}"

比较两者:

[ "${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

相关内容