时间范围内的查询
sed -n '/11:07 18:29:20/,/11:07 18:31:11/p' catalina.out
sed -n '/11:07 18:29:/,/11:07 18:31:/p' catalina.out
为什么sed 可以根据时间范围查询
sed 命令并不能直接根据时间范围查询,而是利用了时间戳出现的字符串匹配功能,从而找到包含指定时间戳范围内的行。
在这个命令中,通过使用 /11:07 18:29:20/,/11:07 18:31:11/ 这样的模式匹配表达式,匹配文件 catalina.out 中所有包含这两个时间戳之间的行。这里的时间戳格式为 HH:MM:SS,因此这个模式匹配表达式会匹配所有出现在 11:07 18:29:20 和 11:07 18:31:11 之间的行。
这种方法的限制是,它只能匹配出现在字符串中的时间戳,并且这些时间戳必须以指定的格式出现。如果时间戳的格式发生变化,这个命令可能就不能正确地匹配所需的行。此外,如果要匹配不同格式的时间戳(例如日期和时间的组合),则需要编写更复杂的正则表达式来进行匹配。
命令中的逗号有什么作用
在 sed 命令中,逗号(,)是一种用于表示范围的分隔符。具体来说,在这个命令中,逗号被用于连接两个模式匹配表达式,形成一个范围。这个范围包含了从第一个模式匹配表达式所匹配的行到第二个模式匹配表达式所匹配的行之间的所有行。
例如,在命令 sed -n '/start/,/end/p' file.txt 中,逗号被用于将 /start/ 和 /end/ 两个模式匹配表达式连接起来,形成一个范围,该范围包含了所有从第一个匹配到 /start/ 的行到第二个匹配到 /end/ 的行之间的所有行。p 命令用于打印这个范围内的所有行。
在命令 sed -n '/11:07 18:29:20/,/11:07 18:31:11/p' catalina.out 中,逗号也被用于将 /11:07 18:29:20/ 和 /11:07 18:31:11/ 两个模式匹配表达式连接起来,形成一个范围,该范围包含了所有从第一个匹配到 /11:07 18:29:20/ 的行到第二个匹配到 /11:07 18:31:11/ 的行之间的所有行。p 命令用于打印这个范围内的所有行。
-n 有什么作用,能不能省略
-n 是 sed 命令的一个选项,表示禁止默认的输出行为,即不输出模式空间中的内容到终端。这个选项通常与 p 命令一起使用,用于只输出匹配到的行,而不输出其他行。
在这个命令中,-n 选项被用于禁止默认输出,而 p 命令则用于输出匹配到的行。因此,如果省略了 -n 选项,sed 命令将默认输出所有行,而不仅仅是匹配到的行,这可能会产生意外的结果。
所以,如果要使用 sed 命令只输出匹配到的行,应该使用 -n 选项和 p 命令结合起来。如果要输出所有行,可以省略 -n 选项。
参考:https://mp.weixin.qq.com/s/VMEJtcKwig5BvgLbiiCKMw
标签:11,匹配,07,18,指定,查询,命令,sed From: https://www.cnblogs.com/marit/p/17360950.html