首页 > 其他分享 >sed 指定范围内查询

sed 指定范围内查询

时间:2023-04-28 09:35:35浏览次数:30  
标签:11 匹配 07 18 指定 查询 命令 sed

时间范围内的查询

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

相关文章

  • EXPLORING MODEL-BASED PLANNING WITH POLICY NETWORKS
    发表时间:2020(ICLR2020)文章要点:这篇文章说现在的planning方法都是在动作空间里randomlygenerated,这样很不高效(其实瞎扯了,很多不是随机的方法啊)。作者提出在modelbasedRL里用policy网络来做onlineplanning选择动作,提出了model-basedpolicyplanning(POPLIN)算法。作者提出......
  • 深度了解group分组查询
    使用groupby的简单例子groupby工作原理groupby+where和groupby+having的区别groupby优化思路groupby使用注意点一个生产慢SQL如何优化1.使用groupby的简单例子groupby一般用于分组统计,它表达的逻辑就是根据一定的规则,进行分组。我们先从一个简单的例子......
  • Android Studio 运行报app未指定模块错误
    github上clone别人的项目,运行的时候报 app未指定模块综合网上的分析,应该是IDEA的一个bug。解决方法:1.setting.gradle文件里面最后一行,include‘:app’剪切掉;2.同步构建一下gradle;3.将剪切掉的一行重新粘贴回原文件;4.重新同步构建一下gradle;问题解决。......
  • Mysql查询父、子节点
    一、概述相信大家在实际的开发工程中,都会遇到需要依据当前节点,查询出其上级节点或下级节点的需求。下面就我在工作过程中的处理方式记录如下,如有片面之处,欢迎批评指正。二、示例表结构初始表数据如图:查看表结构和初始数据脚本DROPTABLEIFEXISTS`t_cfg_region`;CREATE......
  • Oracle查询语句报ORA-01772: 无效数字
    所需字段类型为数字:selectfirst_minutefrombphs.GW_PREGNANT;--其中"first_minute"字段的类型为:number想在目标字段值为空时,用指定字符代替,此时会报错“ORA-01772:无效数字”:selectnvl(first_minute,'aa')frombphs.GW_PREGNANT;--ORA-01772:无效数字解决......
  • 聚合,分组,F,Q查询
    目录小知识点*号打散redirect重定向小知识点*号打散列表字典或则元组前面加*号相当于作用是将列表解开成两个独立的参数,传入函数,还有类似的有两个星号,是将字典解开成独立的元素作为形参。a=[1,2,3]b=(1,2,3)c={1:“a”,2:“b”,3:“c”}print(a,"",*a)print(b,"",*b)prin......
  • JDBC使用List和Map键值封装多表查询结果 java JDBC insert查询返回List对象
    JDBC使用List和Map键值封装多表查询结果https://www.cnblogs.com/zengyu1234/p/15451812.html查询结果的处理Java.sql.ResultSet接口是jdbcAPI中唯一用来封装查询结果记录行的组件。ResultSet接口唯一创建方式是通过执行SQL查询返回创建此对象 遍历结果集中数据truenext......
  • 查询出数据库中char型字段的最大值,查出数据库中字段最大值,max,缺少列,xh...
    SELECTmax(cast(xhasint))asxhFROMkk.kkcltj用cast(xhasint)把varchar(2)的类型转成int后再查出最大值注意:xh的字段里只能存储char型或number型数据,否则会报无效符号错误有时候不主意会写成SELECTmax(cast(xhasint))FROMkk.kkcltj这样select出来的值就没有......
  • Python-字符串format方法指定参数
    一、字符串的format方法有几种指定参数的方式:(1)默认方式—传入的参数与{}一一对应(2)命名参数(3)未知参数{2}二、详细描述字符串的format方法如何格式化字符串:第一种方法:s1='Todayis{},thetemperatureis{}degrees.'print(s1.format('Saturday',24))第二种方法:s2='To......
  • Kivy页面布局中自定义组件位置的方法,可以通过指定组件的位置、尺寸和边距等属性来实现
    Python实现fromkivy.appimportAppfromkivy.uix.gridlayoutimportGridLayoutfromkivy.uix.buttonimportButtonclassMyGridLayout(GridLayout):  def__init__(self,**kwargs):    super(MyGridLayout,self).__init__(**kwargs)    self.cols=1......