![]() |
1
agagega 2021-10-28 11:17:31 +08:00 ![]() awk 或者 perl 都能做到一行,但是不熟悉,想到个蠢办法:
line=$(grep -n 'XXX' FILE | tail -1 | awk -F ':' '{print $1}') sed -n "$(($line+1))"',$p' FILE |
![]() |
2
rrfeng 2021-10-28 11:29:02 +08:00
echo $content | tac | awk '1,/regex/' | tac
|
![]() |
3
rrfeng 2021-10-28 11:33:00 +08:00 ![]() 要做到『最后一次匹配』只能 buffer 起来持续判断直到最后一行,用 tac 倒序就非常好办了。
|
![]() |
4
corningsun 2021-10-28 11:33:59 +08:00 ![]() tail -f xxx.log -n 1000 | grep xxx -A 10
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。 https://www.runoob.com/linux/linux-comm-grep.html |
![]() |
5
sanebow 2021-10-28 11:37:28 +08:00 ![]() tac log.txt | sed -n '/xxx/q;p' | tac
|
![]() |
6
Newyorkcity OP @sanebow 能请教一下这里 q;p 的 q; 是什么用法吗
|
![]() |
7
rrfeng 2021-10-28 14:42:43 +08:00 via Android ![]() q = quit
p = print |