Respostas:
O Grep possui as seguintes opções que permitirão que você faça isso (e coisas assim). Você pode dar uma olhada na página de manual para obter mais informações:
-A num Imprime linhas numéricas do contexto à direita após cada correspondência. Veja também as opções -B e -C.
-B num Imprime num linhas de contexto principal antes de cada partida. Consulte também as opções -A e -C.
-C [num] Imprime linhas numéricas do contexto inicial e final ao redor de cada correspondência. O padrão é 2 e é equivalente a -A 2 -B 2. Nota: nenhum espaço em branco pode ser fornecido entre a opção e seu argumento.
Use o -A
argumento para grep
especificar quantas linhas além da correspondência serão exibidas.
Imprimir N linhas após as linhas correspondentes
Você pode usar grep
com a -A n
opção para imprimir N linhas após as linhas correspondentes.
Por exemplo:
$ cat mytext.txt
Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line8
Line9
Line10
$ grep -wns Line5 mytext.txt -A 2
5:Line5
6-Line6
7-Line7
Outras opções relacionadas:
Imprimir N linhas antes das linhas correspondentes
Usando a -B n
opção, você pode imprimir N linhas antes de combinar as linhas.
$ grep -wns Line5 mytext.txt -B 2
3-Line3
4-Line4
5:Line5
Imprimir N linhas antes e depois das linhas correspondentes
Usando a -C n
opção, você pode imprimir N linhas antes e depois das linhas correspondentes.
$ grep -wns Line5 mytext.txt -C 2
3-Line3
4-Line4
5:Line5
6-Line6
7-Line7
awk '/regex/{p=2} p > 0 {print $0; p--}' filename
- funciona, o seu não.