可以说我有一个名为test.log
more rows 的文件一直在添加:
one|two|apple|four|foo1
one|two|pear|four|foo2
one|two|apple|four|foo3
one|two|peach|four|foo4
我想尾随它,但只对苹果行感兴趣,而且我只想看到最后一个管道之后的字符串。
要按苹果过滤,我可以使用:
tail -f test.log | grep apple
这输出:
one|two|apple|four|foo1
one|two|apple|four|foo3
现在要获取最后一个管道之后的字符串,我认为可以使用:
tail -f test.log | grep apple | awk -F '|' '{print $(NF)}'
但这什么也没有输出。
如果我-f
从 tail 中删除该选项,它会起作用,但我无法查看我的日志文件。
问题是 awk 挂起正如这个答案中所描述的。我无法使那里概述的解决方案对我有用。
所以也许使用 cut 比 awk 更容易。有一定数量的管道,所以我可以这样做:
cat test.log | grep apple | cut -d\| -f 5
输出:
foo1
foo3
但是当我观看时:
tail -f test.log | grep apple | cut -d\| -f5
我再次没有得到任何输出。
是否有一个衬里可以用来尾随该文件、过滤它并提取最后一位?