![파일 이름에 타임스탬프가 있는지 확인하세요.](https://linux55.com/image/126794/%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%97%90%20%ED%83%80%EC%9E%84%EC%8A%A4%ED%83%AC%ED%94%84%EA%B0%80%20%EC%9E%88%EB%8A%94%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EC%84%B8%EC%9A%94..png)
파일 이름에 타임스탬프가 있는지 확인하려면 쉘 스크립트가 필요합니다. 그렇다면 다음 단계로 진행해야 하며, 그렇지 않으면 파일 이름에 타임스탬프를 추가해야 합니다.
답변1
#!/bin/bash
a="afile.txt"
sometimestamp="$(date +%Y-%m-%d)"
if [[ $a =~ *"${sometimestamp}"* ]]; then
echo "Do something";
else
mv "$a" "${a}.${sometimestamp}";
fi
sometimestamp="$(date ....)"
스크립트의 타임스탬프를 원하는 타임스탬프로 변경할 수 있습니다.
답변2
a의 구조는 2018-02-01
다음 정규식으로 제공됩니다.
[0-9]{4}-[0-9]{2}-[0-9]{2}
정규식 일치에서 이것을 사용하면 파일 이름이 일치하는지 알려줍니다.
#!/bin/bash
f=filetotest.txt
regex='[0-9]{4}-[0-9]{2}-[0-9]{2}'
if [[ $f =~ $regex ]]; then
echo "File $f has a timestamp"
else
mv -i "$f" "$f$(date +%Y-%m-%d)"
fi
타임스탬프가 파일 이름 끝에 있어야 하는 경우 대신 다음 정규식을 사용하세요.
[0-9]{4}-[0-9]{2}-[0-9]{2}$
( $
라인 일치의 끝을 참고하세요)