Podría usar grep -An
para imprimir la línea correspondiente y n las siguientes, pero eso es un poco desordenado ya que el número de líneas puede variar.
Probablemente sea mejor usar awk
. Esto imprimiría todas las secciones que comienzan con enp1
o enp3
. La primera regla !/^ / {p=0}
borra la variable p
si la línea no comienza con un espacio, la segunda /^enp[13]/ {p=1}
establece si la línea comienza con los nombres de interfaz que queremos, y luego imprimimos si p
está establecido. Las líneas que comienzan con espacios solo coinciden con la última regla, por lo que se imprimen en función del valor anterior de p
.
# /sbin/ifconfig -a |awk '!/^ / {p=0} /^enp[13]/ {p=1}; p'
enp1s0 Link encap:Ethernet HWaddr...
inet addr:...
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:135284106 errors:0 dropped:0 overruns:0 frame:0
TX packets:144695 errors:0 dropped:0 overruns:0 carrier:2
collisions:0 txqueuelen:1000
RX bytes:8292624956 (8.2 GB) TX bytes:16595674 (16.5 MB)
enp3s0 Link encap:Ethernet HWaddr...
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
En su caso, por supuesto usaría un patrón como /^s1-eth/
.