1
agagega 2021-10-28 11:17:31 +08:00 1
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 1
要做到『最后一次匹配』只能 buffer 起来持续判断直到最后一行,用 tac 倒序就非常好办了。
|
4
corningsun 2021-10-28 11:33:59 +08:00 1
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 1
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 1
q = quit
p = print |