您的位置:首页 > 其它

计算两个时间相隔, 同时思考脚本语言

2016-01-03 20:36 309 查看


任务

[2016-12-31 15:59:14.383] INFO

需要把Log中类似这样的串提取出来,并转换为时间。


Java做法

Java 计算两个日期相差的天数

JAVA计算两个时间差 

可以做成jar包来处理

不然这么简单的内容,如果用jar是不是太低效了?至少yadong用jar是为了处理Excel这种复杂表格式数据


Shell, perl的对比

PS: 学习充分掌握一个工具的【用途】,但不是学习它的功能  --- 学以致用

文本操作就是正则式,《精通正则表达式》说,掌握了正则表达式,问题就能很easy处理,不然就无比难。

shell的提取子串要借助 grep, sed的正则式找到匹配的行(串), 而awk, cut负责cut出子串。为了方便提取,也可以通过正则式先做替换,或者用tr,便于之后的处理(所谓的命令组合的强大)(再看看自己写的logeject.sh)(Shell脚本中经常用到的工具有cut、tr、grep、sort、uniq、re、sed、awk等。)

(提取子串应该是正则式的终极应用之一了,也能验证出语言对正则式的支持程度)

这样确实低效,就不难理解为何会出现perl了。


check
if string match a regex in BASH Shell script


How
to extract a value from a string using regex and a shell?


Shell编程 字符串子串的提取

awk + cut方法
如:a=“aaa字符串处理”
echo “aaa字符串处理” | awk -F符 '{print $2}' | cut -c 1,2

shell脚本抽取制定字符串、grep+awk+cut+sed

知乎:
Perl、Python、AWK、sed 之间有哪些区别?处理文本使用那种脚本语言比较好?理由是什么?
perl在文本、字符串处理中比python、ruby到底强在哪里?
perl提取子串的例子:


Searching
for a substring in a string in shell script [duplicate]


Python & perl的比较

就像知乎所描述,python是个全能战士,perl在文本处理方便应该更好用。根据需要吧。

sed - when you need to do simple text transforms on files.awk - when you only need simple formatting and summarization or transformation of data.perl - for almost any task, but especially when the task needs complex regular expressions.python - for the same tasks that you could use Perl for.

Larry Walls 在设计 Perl 这个语言之初,就是为了让他处理文本,所以他把正则引擎直接嵌套到了语言中,而像 Python 和 Ruby,他们需要调用相应的正则表达式库才能支持正则表达式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息