我需要的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