Deseja obter uma data em um arquivo e suas próximas 5 linhas

2

Eu quero grep a data atual em um arquivo, mas também a saída das próximas 5 linhas. Como eu faço isso com o grep ou qualquer outra coisa. grep -A 5 file.txt não funciona e a saída é mostrada abaixo. Por favor ajude!

$grep $(date +"%m/%d") file.txt - isso funciona apenas na primeira linha. Mas eu quero que as próximas 5 linhas sejam exibidas também.

$ grep -A 5 '$(date +"%m/%d")' file.txt
grep: Not a recognized flag: A
Usage: grep [-r] [-R] [-H] [-L] [-E|-F] [-c|-l|-q] [-insvxbhwyu] [-p[parasep]] -e pattern_list...
        [-f pattern_file...] [file...]
Usage: grep [-r] [-R] [-H] [-L]  [-E|-F] [-c|-l|-q] [-insvxbhwyu] [-p[parasep]] [-e pattern_list...]
        -f pattern_file... [file...]
Usage: grep [-r] [-R] [-H] [-L] [-E|-F] [-c|-l|-q] [-insvxbhwyu] [-p[parasep]] pattern_list [file...]
    
por Cecil Daniel 26.04.2015 / 08:54

1 resposta

5

Seu grep não suporta o -A , então você não pode usar isso. Mas você deve conseguir o mesmo resultado com awk .

awk -v dt=$(date +%m/%d) '$0~dt{counter=5}counter>=0{print;counter--}' file.txt

Isso define um contador para 5 quando uma correspondência é encontrada e imprime e decrementa o contador enquanto ele não é negativo.

    
por 26.04.2015 / 09:04

Tags