假设我有一个文件名ABC.20131212.XX.xml
,其中XX
是HH(小时)。我需要获取XX
的值并将其与系统时间的当前小时进行比较。如果它相等,那么,我将重命名该文件。因此,如果是12点(中午12点),我应该使用ABC.20131212.12.xml
获取文件并重命名。如何在shell脚本中实现比较?
答案 0 :(得分:0)
以下是如何在不启动外部命令的情况下开始纯粹的bash:
a=ABC.20131212.XX.xml
# Strip off .xml
b=${a%.xml}
# Extract last 2 characters
xx=${b: -2}
,小时可以用
获得time=`date +'%H'`
可以像这样进行比较和重命名
if [[ $time -eq $xx ]]
then
mv something somewhere
fi
答案 1 :(得分:0)
以下是使用Bash内置正则表达式匹配的方法:
file=foobar.11.xml
if [[ $file =~ .*([0-9][0-9])\.xml ]]; then
if [[ "${BASH_REMATCH[1]}" -eq $(date "+%I") ]]; then
# $file has current hour in its name
fi
fi
使用+%H
选项与date
进行比较,以便与24小时制进行比较。
答案 2 :(得分:0)
以下是您可以使用的脚本(相应地更改路径): `
路径= /你/路径/这里/ *
for $ in $ Path
DO
α= $升
B = $ {一%的.xml}
xx = $ {b:-2}
时间= date +"%I"
if [[$ time -eq $ xx]]
然后
mv $l /New/file/name/path/newfile.txt
网络连接
完成
退出0`