我需要的bash脚本接受日期格式字符串(“的strftime”格式),例如:检查字符串匹配给定的日期,就像格式
< < [%Y-%间%d%H:%M:%S] >>
然后检查在我的输入文件数据(左值)是否该给定的字符串匹配或不:
格式字符串:< < [%Y-%间 - %d%H:%M:%S] >>
数据文件:
< < [2017年5月4日14点49分18秒] >> 12.1 - 有效
< [2017年5月4日14点49分18秒]> -1421 - 无效
< < [2017年5月4日14点49分18秒] >> 1231231.02 - 无效
的输入文件有很多行,我唯一想到的就是使用Python:
function check_time_format() {
python -c "import time;
time.strptime(\"$1\",\"$2\")" 2> /dev/null
}
while read -r lvalue rvalue; do
check_time_format "$lvalue" "$TIMEFORMAT"
[[ $? != 0 ]] && echo "Invalid format..."
done < "$file"
它有效,但它当然非常慢。有没有更好的方法来做到这一点,可能就像容易?
谢谢!
您可以改为使用'date --date = [my_string]'命令来解析时间戳。如果无法解析日期,则返回非零值,否则返回格式化的日期。 – amphetamachine
我需要有可能使用任何字符的字符串,例如:blabla%Y:%Mblabla。你的解决方案无法帮助我实现我的想法。 – PesaThe