我想 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,并在计数器不为负时打印并递减计数器。