与字符串中的 sed 正则表达式匹配

特百惠

我想将 stdout 命令中的字符串与 sed 和 regex 匹配

例如我有这个输出命令: connmanctl services ethernet_00142d000000_cable

这个输出:

Type = ethernet
  Security = [  ]
  State = ready
  Favorite = True
  Immutable = False
  AutoConnect = True
  Name = Wired
  Ethernet = [ Method=auto, Interface=eth0, Address=00:00:00:00:00:00, MTU=1500 ]
  IPv4 = [ Method=manual, Address=192.168.0.100, Netmask=255.255.255.0 ]
  IPv4.Configuration = [ Method=manual, Address=192.168.0.101, Netmask=255.255.255.0 ]
  IPv6 = [  ]
  IPv6.Configuration = [ Method=auto, Privacy=disabled ]
  Nameservers = [  ]
  Nameservers.Configuration = [  ]
  Timeservers = [  ]
  Timeservers.Configuration = [  ]
  Domains = [  ]
  Domains.Configuration = [  ]
  Proxy = [ Method=direct ]
  Proxy.Configuration = [  ]
  Provider = [  ]

我想eth0Interface=eth0,(第 8 行)获取。

所以我使用这个命令: services ethernet_00142d000000_cable | sed -n -e 's/^.*Ethernet = //p' | sed -e 's/.*Interface=\([^,*]*\),*/\1/'

第一个 sed 使用以太网提取整行,第二个 sed 提取以 Interface 开头并以逗号结尾的字符串。

结果是:

eth0 Address=00:14:2D:00:00:00, MTU=1500 ]

为什么我在逗号后已经得到了以下内容。我怎么才能得到eth0

谢谢你。

亚历克西斯

以下是如何使用单个 sed 命令将您的编辑定位到特定行:

services ethernet_00142d000000_cable | \
      sed -n -e '/Ethernet =/s/.*Interface=\([^,]*\).*/\1/p'

得到它?您可以s///通过命令之前添加模式(甚至是行范围规范)来限制该命令。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

sed的:滤光器串的子集从正则表达式的匹配线

sed中的非贪婪(勉强)正则表达式匹配?

从带有sed和bash中的正则表达式的字符串中提取匹配项

sed正则表达式在配置中不匹配

用SED中的正则表达式匹配并替换![foo](/ bar /)

BASH:如何在sed命令中对字符串使用正则表达式负前瞻?

匹配字符串中的正则表达式

FOR循环中Windows cmd中sed的转义正则表达式字符串

Linux sed命令替换正则表达式字符串

在文件awk或sed中与正则表达式匹配的单词中添加引号

使用sed查找并替换复杂的字符串(最好使用正则表达式)

提取与“ sed”匹配的正则表达式,而不打印周围的字符

如果字符串在sed中建立,则在两个正则表达式之间打印行

sed正则表达式中“ +”的使用

为什么不加?正则表达式字符在sed中产生匹配项?

SED / AWK:将字符串添加到与另一个源文件中的正则表达式值匹配的多个文件中

sed使用正则表达式提取字符串的结尾

使用sed将字符串匹配的正则表达式替换为通配符

使用sed或grep根据正则表达式提取子字符串

正则表达式捕获行中的子字符串并使用sed更改输出

如何使用sed或正则表达式截断shell脚本中的字符串?

交替使用“|” 在 sed 的正则表达式中

用sed中的正则表达式替换字符串

sed 命令中的正则表达式不正确匹配

+ 正则表达式在 sed 中不起作用

使用带有正则表达式的 sed 来替换字符串

将正则表达式搜索/替换字符串作为参数的 sed 包装函数

正则表达式使用 sed 命令匹配和替换 yaml 文件中的文本

sed 中的正则表达式