对于所有在那里的“ sed”医生:
您如何获得“ sed”来提取在一行中匹配的正则表达式?
换句话说,我只想删除包含行中所有不匹配字符的正则表达式对应的字符串。
我尝试使用如下所示的反向引用功能
regular expression to be isolated
gets `inserted`
here
|
v
sed -n 's/.*\( \).*/\1/p
这适用于某些表达式,例如
sed -n 's/.*\(CONFIG_[a-zA-Z0-9_]*\).*/\1/p
整齐地提取所有以'CONFIG_ ....'开头的宏名(在某些* .h文件中找到),并将它们全部逐行打印出来
CONFIG_AT91_GPIO
CONFIG_DRIVER_AT91EMAC
.
.
CONFIG_USB_ATMEL
CONFIG_USB_OHCI_NEW
.
e.t.c.
但是上面的东西分解为
sed -n 's/.*\([0-9][0-9]*\).*/\1/p
这总是返回单个数字,例如
7
9
.
.
6
而不是提取一个连续的数字字段,例如。
8908078
89670890
.
.
.
23019
.
e.t.c.
PS:我将很高兴收到有关“ sed”如何实现这一目标的反馈。我知道如何做到这一点与“grep的”和“awk的”我想看看我的-尽管有限-的“sed的”理解有孔,如果有办法做到这一点在“sed的”我
有简单地被忽略了。