【发布时间】:2016-09-14 03:44:13
【问题描述】:
好的,所以我有日志文件,我想在特定范围内搜索。这些范围在一天中会有所不同。下面是一段日志文件,这是我可以给你看的唯一一段,对不起工作。如果这很重要,我正在使用 cat 命令。
工作示例:cat /dir/dir/dir/2014-07-30.txt | grep *someword* | cut -d',' -f1,4,3,7
2014-07-30 19:17:34.542 ;; (p=0,siso=0)
上面为我提供了我需要的信息以及时间戳,但显示了所有时间范围,这就是我想要更正的内容。假设我只希望时间的第一列中的范围为 18 到 20。
实际 --> 2014-07-30 19:17:34.542 ;; (p=0,siso=0)
我正在寻找的唯一范围 --> [18-20]:00:00.000 ;; (p=0,siso=0)
我不担心00s,因为它们可以是任何数字。
感谢收看。从我的示例中您可以看出,我没有使用太多脚本编写方式,但非常感谢任何帮助。
我已经包含了一个日志文件,冒号和逗号是它们应该在的位置。
2014-07-30 14:33:19.259 ;; (p=0,ser=0,siso=0) IN ### Word:Numbers=00000,word=None something goes here and here (something here andhere:here also here:2222),codeword=8,codeword=0,Noideanumbers=00000000,something=something, ;;
【问题讨论】:
-
这是一个无用的 cat 用于记录。
grep '*someword*' /dir/dir/dir/2014-07-30.txt做同样的事情,没有额外的进程和管道。 -
确实可以,但我使用管道和额外的进程,因为我需要日志文件中的某些信息。我意识到并且知道我可以在它面前做 grep。感谢您的意见..
-
我不关注。那个管道中的猫根本不会为你做任何事情。它不能(除了阻止 grep 知道您正在从文件中读取以及文件名是什么)。
-
好吧,如果我在前面使用带有管道和分隔符的 grep 的命令,我会得到相同的信息,但在前面的目录信息与我一样,我只得到我需要的信息而没有额外的目录行话。我们一次搜索数百个目录中的日志文件,只需要关键信息。
-
你说的是 grep 在输入多个文件时放在输出行上的文件名前缀 (
/path/to/file:)?因为-h将其关闭。