내 환경에서는 클라이언트로부터 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