Shell-Script

將“文件大小”與“文件的姓氏”進行比較的腳本,如果不匹配則刪除文件

  • October 20, 2015

在我的環境中,我們將從客戶端接收文件到我們的 Sftp 伺服器。Sftp 通過在文件名末尾附加文件大小來處理文件並將其移動到另一個工具。例如,samplefile.20150706大小為 1024 的將創建為samplefile.20150706.1024.

如果文件大小和名稱(後面的最後一部分.)匹配,我們的工具將選擇文件並將其發送到 ETL。如果文件在該位置停留超過一個小時(由於大小和名稱不匹配而未處理),該工具將向我們發送警報,因為文件已超過一小時。

我正在尋找命令,它將提取文件名的最後一部分並將其與文件大小進行比較,並最終刪除該文件。

獲取文件大小

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

獲取沒有最後一個副檔名的路徑

path_without_extension="${path%.*}"

比較兩者:

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

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

引用自:https://unix.stackexchange.com/questions/214154