【发布时间】:2018-02-02 10:25:50
【问题描述】:
我正在执行下面的 grep 语句
grep 'duration: [[:digit:]]\{4,\}' file_name.log | grep 'execute' | grep -o 'duration: [[:digit:]]\{4,\}.*' | grep -o '[[:digit:]]\{4,\}.*' | sort -g -r
它给了我这样的结果
26398.170 毫秒执行:SELECT ... bla-bla ...
987687.234 毫秒执行:SELECT ... bla-bla ...
我正在想办法做到这一点
26398 执行:SELECT ... bla-bla ...
987687 执行:SELECT ... bla-bla ...
类似grep -o '[[:digit:]]\{4,\}' + 'execute.*'
【问题讨论】:
-
会建议从 file_name.log 本身添加一些示例行到问题中。我觉得该任务更适合 sed/awk 而不是 grep ...所以需要原始行才能工作与
-
能不能在最后一个grep之后用sed,比如sed 's/\.[[:digit:]]\+ ms//g'
-
顺便说一句,您的问题或答案中没有任何内容是特定于 Ubuntu 的。 Ubuntu 使用 GNU
grep,就像几乎所有其他 Linux 平台以及许多其他平台一样。
标签: linux ubuntu grep pattern-matching concatenation