
ファイル名にタイムスタンプがあることを確認するには、シェルスクリプトが必要です。その場合は、次の手順に進み、それ以外の場合はファイル名にタイムスタンプを追加する必要があります。
答え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}$
($
ラインマッチの終わりを参照してください)