首页 > 编程知识 正文

tail -f grep,grep命令查找字符串

时间:2023-05-05 03:22:06 阅读:19358 作者:2127

分组

Linux grep命令用于在文件中查找满足条件的字符串。

正则表达式命令用于搜索内容包含指定模板样式的文档。 如果文档的内容与指定的模板样式匹配,默认正则表达式命令将显示包含模板样式的行。 如果未指定文件名,或者指定文件名为“-”,则grep命令将从标准输入设备读取数据。

语法

grep [-abcefghillnqrsvvwxy ][-a ] [-b ] [-c ] [-d ] [-e ] [-f ] [-- help ] [模板样式] [文件或目录.

或者

grep [选项] '模式' [文件]

参数

-a或--text :不要忽略二进制数据。

显示该行之后的内容,但与-A或--after-context=:模板中的样式匹配的行除外。

-b或--byte-offset :在显示与样式匹配的行之前标记该行中第一个字符的编号。

-B或--before-context=:显示该行之前的内容,但与样式匹配的行除外。

-c或--count :计算与样式匹配的列数。

-C或--context=或- :显示该行前后的内容,但与样式匹配的行除外。

如果指定的是目录而不是-d或--directories=:文件,则必须使用此参数。 如果未指定,grep命令将报告信息并停止操作。

-e或--regexp=:将字符串指定为搜索文件内容的样式。

-E或--extended-regexp :将样式用作扩展的通用表示形式。

-f或--file=:指定包含一个或多个规则样式的规则文件,以便正则表达式可以按每行一个规则样式的形式搜索满足正则条件的文件的内容。

-F或- -固定- regexp :将样式视为固定字符串的列表。

-G或--basic-regexp :使用样式作为常规表示。

-h或--no-filename :在显示与样式匹配的行之前不会标记该行所属的文档名称。

-H或--with-filename :表示该行所属的文件名,然后才能显示与样式匹配的行。

-i或--ignore-case :忽略大小写差异。

-l或--file-with-matches :列出文件内容与指定样式匹配的文件名。

-L或--files-without-match :列出了文件内容与指定样式不匹配的文件名。

-n或--line-number :在显示与样式匹配的行之前标记该行的行号。

-q或--quiet或--silent :中不显示任何内容。

-r或--recursive :此参数的效果与指定“-d recurse”参数的效果相同。

-s或--no-messages :中不显示错误信息。

-v或--revert-match :显示不包含匹配文本的所有行。

-V或- -版本:显示版本信息。

-w或--word-regexp :仅显示整个单词匹配的列。

-x --line-regexp :仅显示所有列匹配的列。

-y :此参数的效果与指定“-i”参数相同

实例

[ root @ hardsupervisord ] # grep ' post.* play _ order.* return 200 ' TMD.log

[ 2018-10-2114336039336021,190 ] [ base.py :451 ] [ debug ] [ post/adminapi/v3/play _ order ] return 200

[ 2018-10-2114336042336003,327 ] [ base.py :451 ] [ debug ] [ post/adminapi/v3/play _ order ] return 200

[ 2018-10-211433604336027,720 ] [ base.py :451 ] [ debug ] [ post/adminapi/v3/play _ order ] return 200

[ 2018-10-2118336015336025,090 ] [ base.py :451 ] [ debug ] [ post/adminapi/v3/play _ order ] return 200

[ 2018-10-21183360:20,517 ] [ base.py :451 ] [ debug ] [ post/adminapi/v3/play _ order ] return 200

[ 2018-10-2216336020336055,863 ] [ base.py :451 ] [ debug ] [ post/adminapi/v3/play _ order ] return 200

[ 2018-10-2217336041336036,183 ] [ base.py :451 ] [ debug ]

[POST /adminapi/v3/play_order ] return 200

[2018-10-22 17:52:44,021] [base.py:451 ] [DEBUG] [POST /adminapi/v3/play_order ] return 200

[2018-10-22 17:55:15,172] [base.py:451 ] [DEBUG] [POST /adminapi/v3/play_order ] return 200

grep 'POST.*play_order.*return 200' tmd.log 这个等同于grep 'play_order' tmd.log | grep 'POST' | grep 'return 200'

[root@hard supervisord]# grep -c 'POST.*play_order.*return 200' tmd.log

62

[root@hard supervisord]# grep -c 'play_order' tmd.log | grep 'POST' | grep 'return 200'

[root@hard supervisord]# grep 'play_order' tmd.log | grep 'POST' | grep -c 'return 200'

62

grep可以和很多的命令一起使用

查看Linux 某些程序进程 ps aux

[root@谦让的小白菜2ze3269b etc]# ps aux | grep mysql

root 2371 0.0 0.0 112676 980 pts/0 S+ 14:34 0:00 grep --color=auto mysql

mysql 10810 0.1 9.4 1599384 367788 ? Sl 10月11 13:13 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

tail

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

语法

tail [参数] [文件]

参数

-f 循环读取

-q 不显示处理信息

-v 显示详细的处理信息

-c 显示的字节数

-n 显示行数

--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.

-q, --quiet, --silent 从不输出给出文件名的首部

-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

实例

要显示 notes.log 文件的最后 10 行,请输入以下命令:

tail notes.log

要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:

tail -f notes.log

此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。

显示文件 notes.log 的内容,从第 20 行至文件末尾:

tail +20 notes.log

混合使用

有时候我们会查询正在改变的文件,但是我们只想查看其中的某一些信息,这时候就可以使用tail、grep的混合使用

tail -f filename | grep 'DEBUG'

实例

tail -f tmd.log | grep 'DEBUG.template.begin'

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。