首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux + grep +减

Linux + grep +减
EN

Stack Overflow用户
提问于 2017-05-17 19:07:20
回答 3查看 10.5K关注 0票数 1

我想看到我的网站访问日志的实时输出。在本例中,我只想看到与".php“匹配的条目的尾尾类型。

这很好,但是行换到下一行,我不想这样:

代码语言:javascript
复制
tail -f access-log | fgrep ".php" --line-buffered

这可以很好地避免行包装,但它没有被过滤:

代码语言:javascript
复制
less +F -S access-log

我更喜欢看不带行的文件,因为在输出中更容易看到结构,这就是我想要less -S的地方。

这样做是可行的,但是“游标”并不停留在文件的底部,我输入的任何命令都会使less挂起(按"SHIFT + f“表示在流出现时停留在底部):

代码语言:javascript
复制
tail -f access-log | fgrep ".php" --line-buffered | less -S

但这根本行不通:

代码语言:javascript
复制
tail -f access-log | fgrep ".php" --line-buffered | less +F -S

那么,有没有办法实现我想要的呢?

我也采用了开箱即用的解决方案,也许用sed进行裁剪,这样每一行都不会超过我的屏幕?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-17 19:20:16

我建议:

代码语言:javascript
复制
tail -f access-log | fgrep ".php" --line-buffered | cut -c 1-$COLUMNS
票数 1
EN

Stack Overflow用户

发布于 2017-05-17 19:17:57

考虑使用watch命令:

watch -n1 tail access-log | fgrep ".php" --line-buffered

票数 0
EN

Stack Overflow用户

发布于 2017-05-17 22:35:44

我已经在我的案例中使用了公认的答案,但我想如果我真的想少用一些,因为我喜欢它也提供的其他功能,我可以这样做:

代码语言:javascript
复制
tail -f access-log | fgrep ".php" --line-buffered >> tmp.access-log

然后

代码语言:javascript
复制
less -S +F tmp.access-log

当我完成时,如果我不需要那个tmp文件,我只需删除它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44032957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档