想要 grep 文件中的日期及其接下来的 5 行

想要 grep 文件中的日期及其接下来的 5 行

我想 grep 文件中的当前日期,但也输出接下来的 5 行。我该如何用 grep 或其他东西做到这一点。grep -A 5 file.txt不起作用,输出如下所示。请帮忙 !

$grep $(date +"%m/%d") file.txt- 这只适用于第一行。但我还想显示接下来的 5 行。

$ 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...]

答案1

你的 grep 不支持该-A标志,所以你不能使用它。但你应该能够得到相同的结果awk

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

当找到匹配时,这会将计数器设置为 5,并在计数器不为负时打印并递减计数器。

相关内容