我想打印包含regexp的行之间的文本部分(段落),请帮忙,如何通过grep,不是awk或sed来完成,或者通过grep找到regexp并使用awk | sed打印 . 我在脚本中使用它,regexp - 是可变的 . param - 是扩展正则表达式(ERE)的模式
awk -v RS="<section>" "/$param/" "$FILE" <!--it's now, but I need to find param by grep-->
文件示例:
<section>
interface gigabitEthernet 7 // 192.168.248.200
switchport access vlan 1
switchport mode access
port shutdown
<section>
interface gigabitEthernet 8 //
switchport access vlan 2
switchport mode trunk
<section>
1 回答
正如已经指出的那样,
grep
不是完成这项任务的理想工具 . 但是如果你使用其中两个可能会有效;-)-Pzo
激活perl正则表达式,多行匹配并限制输出到匹配的部分,请参阅related question .请注意,输出与
awk
语句在空格中的输出不同,并非所有grep实现都支持-P
.