"파일 크기"와 "파일 성"을 비교하고 일치하지 않으면 파일을 삭제하는 스크립트

"파일 크기"와 "파일 성"을 비교하고 일치하지 않으면 파일을 삭제하는 스크립트

내 환경에서는 클라이언트로부터 Sftp 서버로 파일을 받습니다. Sftp는 파일 이름 끝에 파일 크기를 추가하여 파일을 처리하고 다른 도구로 이동합니다. 예를 들어, samplefile.201507061024 크기는 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

관련 정보