使用bash编写脚本。我试图通过文件中的行来查看特定的日期格式:
date +"%a %b %d %T %Z %Y"
例如,如果该行是
/foo/bar/foobar this 12 is 411 arbitrary stuff in the line Wed Jun 10 10:10:10 PST 2017
我希望获得2017年6月10日星期三10:10:10太平洋标准时间。
有什么方法可以搜索特定的日期格式吗?
答案 0 :(得分:2)
我不确定您是否同意这种做法。但如果这是一些快速,非经常性的工作,我不会寻找一个可以处理所有场景的完美解决方案。
首先,您可以使用以下过于通用的模式来匹配您想要的部分。
cat file | sed -n 's/.*\(... ... .. ..:..:.. ... ....\).*/\1/p'
然后你可以根据需要进一步限制匹配。
E.g。
cat file | sed -n 's/.*\([a-Z]\{3\} [a-Z]\{3\} [0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9] [A-Z]\{3\} [0-9]\{4\}\).*/\1/p'
请注意,这仍然不完美,可以匹配无效内容。如果你发现它仍然不够好,你可以进一步微调模式到你想要的点。