假设我有一个文件名ABC.20131212.XX.xml
,其中XX
HH(小时)。我需要获取的值XX
并将其与系统时间的当前小时进行比较。如果它相等,那么,我将重命名该文件。因此,如果现在是中午 12 点(12:00),我应该获取文件ABC.20131212.12.xml
并重命名它。如何在 shell 脚本中实现比较?
问问题
156 次
3 回答
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
于 2013-10-15T09:30:08.090 回答
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
选项 with 与date
24 小时制时间系统进行比较。
于 2013-10-15T09:58:32.370 回答
0
这是您可以使用的脚本(相应地更改路径):`
!/bin/bash
路径=/你的/路径/这里/*
对于 l 在 $Path
做
a=$l
b=${a%.xml}
xx=${b: -2}
时间=date +"%I"
如果 [[ $time -eq $xx ]]
然后
mv $l /New/file/name/path/newfile.txt
菲
完毕
退出 0`
于 2013-10-15T18:32:46.933 回答