-
2021-09-06 10:15:39
先发送请求,在动态日志中使用control C 暂停日志,然后使用 “grep -i 关键字 所在日志名”查找
1. 不区分大小写地搜索。默认情况区分大小写
grep -i pattern files 即 grep -i 关键字 所在日志名
2、tail 可以结合
-n
参数指定一个行数, 比如下述命令会显示最后的 30 行的日志:tail -n 30 access.log
更多相关内容 -
Linux上批量查找文件里面带的关键字(grep 关键字的用法)
2018-12-19 15:48:27功能说明:查找文件里符合条件的字符串(同时能匹配正则表达式) 语法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作&...grep
功能说明:查找文件里符合条件的字符串(同时能匹配正则表达式)
语法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
grep -参数 文件名/文件目录
参数
-a或--text 不要忽略二进制的数据。
-A<显示行数> 除了显示符合范本样式的那一行数据之外,还显示该行之后的内容,行数多少就多显示多少行
-b或--byte-offset 在显示符合样式的那一列之前,标出该列第一个字符的位编号
-B<行数> 除了显示符合范本样式的那一行数据之外,还显示该行之前的内容,行数多少就多显示多少行(与-A相反)
-c 列出符合条件的数量
-C<显示列数>或--context=<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作>或--directories=<进行动作> 如何处理目录;是“读”,“递归”,或“跳过”`read', `recurse', or `skip'
-e<范本样式>或--regexp=<范本样式> 指定字符串做为查找文件内容的范本样式。但是感觉-e没什么用啊,不加-e也能用正则匹配出来
-E或--extended-regexp 将范本样式为延伸的普通表示法来使用。
-f<范本文件>或--file=<范本文件> 指定范本文件,其内容含有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每列一个范本样式。
-F或--fixed-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或--version 显示版本信息。
-w或--word-regexp 只显示全字符合的列。
-x或--line-regexp 只显示全列符合的列。
-y 此参数的效果和指定“-i”参数相同。查看一个目录下所有文件里面带关键字的grep方法
cat 文件名 |grep '正则匹配'
缺点很明显,yyf目录下有很多小文件,查找出的结果不能显示文件名。
使用find命令:
-type 表示类型 f 表示普通文件 xargs 表示递归查找子目录 目标字符可带**等符号 可不带引号。
-
Grep命令查找多个字符串(grep同时匹配多个关键字或任意关键字)
2021-05-08 16:16:51grep 命令支持三种正则表达式语法:Basic、Extended 和 Perl-compatible 。当没有指定正则表达式类型时,grep 命令将搜索模式默认为基本正则表达式。 要搜索多个匹配模式,可以使用 OR ( alternation ) 运算符。...前言
grep 命令支持三种正则表达式语法:Basic、Extended 和 Perl-compatible 。当没有指定正则表达式类型时,grep 命令将搜索模式默认为基本正则表达式。
要搜索多个匹配模式,可以使用 OR ( alternation ) 运算符。我们可以用 OR 运算符 |( pipe )指定不同的匹配项,这些匹配项可以是文本字符串,也可以是表达式集。值得注意的是,在所有正则表达式运算符中,这个运算符的优先级是最低的。
使用 grep 命令基本正则表达式搜索多个匹配模式的语法如下:
$ grep 'pattern1\|pattern2' filename
这里需要注意的是,始终要用单引号将正则表达式括起来,因为单引号内的内容原样输出,被单引号括起的内容不管是常量还是变量不会发生替换。
使用基本正则表达式时,元字符被解释为字面字符。要保留元字符的特殊含义,必须用反斜杠( \ )对它们进行转义。这就是为什么我们要转义 OR 运算符(|)。
要将模式解释为扩展正则表达式,请调用 grep -E(或 --extended-regexp )选项。使用扩展正则表达式时,不需要对 OR 运算符 (|) 进行转义:
$ grep -E 'pattern1|pattern2' file
1.Grep命令搜索多个字符串
通常我们认为,文字字符串是最基本的模式。
接下来我们将示例,搜索某用户日志错误文件中出现的所有 fatal、error 和 critical 字符串。语法如下:
$ grep 'fatal\|error\|critical' /var/log/nginx/error.log
还需要注意的是,如果要搜索的字符串包含空格,需要用双引号将其括起来。
下面是使用扩展正则表达式的同一个示例,它不需要转义字符:
$ grep -E 'fatal|error|critical' /var/log/nginx/error.log
默认情况下,grep 命令是区分大小写的。要在搜索时忽略大小写,请调用 grep 加 -i (或 --ignore-case )选项,示例如下:
$ grep -i 'fatal|error|critical' /var/log/nginx/error.log
当你只想搜索某个单词时,比如你想搜索的是单词 error ,grep 命令会输出所有包含 error 字符串的行,即它除了会输出包含 error 单词的行,还会输出包含 errorless 或 antiterrorists 等非 error 单词的行,这样是极不方便的。
因此要仅返回指定字符串是整词的行,或者是由非单词字符括起来的行,可以使用 grep 加 -w (或 --word-regexp )选项:
$ grep -w 'fatal|error|critical' /var/log/nginx/error.log
值得注意的是,单词字符包括有字母、数字字符(比如 a-z、a-Z 和 0-9 )以及下划线( _ ),所有其他字符都被视为非单词字符。
2.grep同时匹配多个关键字或任意关键字
2.1与操作
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
grep word1 file.txt | grep word2 |grep word3
必须同时满足三个条件(word1、word2和word3)才匹配。
2.2 或操作
grep匹配任意关键字
grep -E 'str1|str2|str3' filename //找出文件(filename)中包含str1或者包含str2或者包含str3的行
egrep实现
egrep 'str1|str2|str3' filename //用egrep同样可以实现
awk实现
awk '/str1|str2/str3/' filename //awk 的实现方式
2.3其他操作
grep -i pattern filename #不区分大小写地搜索。默认情况区分大小写。 grep -l pattern filename #只列出匹配的文件名。 grep -L pattern filename #列出不匹配的文件名。 grep -w pattern filename #只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’)。
参考文章:
-
linux中查找grep与find命令的使用
2020-12-29 11:33:01在日常工作中,我们常常会在自己的电脑寻找某些不知道放在哪里的私密文件,通常我们会在资源管理器的搜索栏里输入一些关键字去帮助我们快速去定位查找该文件。在linux系统中也有这样的功能,只不过在linux中我们需要...在日常工作中,我们常常会在自己的电脑寻找某些不知道放在哪里的私密文件,通常我们会在资源管理器的搜索栏里输入一些关键字去帮助我们快速去定位查找该文件。在linux系统中也有这样的功能,只不过在linux中我们需要输入命令去查找(对于没有图形界面来说),下面介绍两个有用且有趣的命令。
----grep:
grep命令是用来查看文本文件内容,并显示包含指定“字符串”的行,其基本用法是
grep [选项] '匹配字符串' 文本文件
1 grep –i '匹配字符串' 文本文件 #忽略需要匹配字符串中的大小写
例如:[root@localhost ~]# grep -i 'Root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
这条命令就是在/etc下的passwd文本文件中将含有root(不管大小写)匹配字符的行全部显示出来
2 grep -v '匹配字符串'文本文件#取反,将不含匹配的字符串的行全部显示出来
例如:[root@localhost ~]# grep -v 'root'/etc/passwd
这条命令就是将passwd文本文件中不含root字符的行显示出来
3 grep‘^word‘文本文件#将以word开头的行全部显示出来
例如:[root@localhost~]# grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
这条命令就是将以root开头的行显示出来
4 grep‘word$‘文本文件#将以word结尾的行全部显示出来
例如:[root@localhost~]# grep 'bash$' /etc/passwd
root:x:0:0:root:/root:/bin/bash
amandabackup:x:33:6:Amandauser:/var/lib/amanda:/bin/bash
hentai:x:1000:1000:hentai:/home/hentai:/bin/bash
这条命令就是将passwd中以bash结尾的行全部显示出来
既然“^ $“字符串分别表示以某开头与以某结尾,那么,将这两个字符串结合起来用会怎样呢
[root@localhost~]# grep '^$' /etc/default/useradd
(空行)
[root@localhost~]#
从结果来看,就是将useradd文本中的含有的空行显示出来
那么grep –v '^$' /etc/default/useradd又表示什么呢
前面说到-v表示取反,那么这条命令就是将文本中的空行去除,显示出文本所有内容
有时候在linux中某些文件中有很多空行,不方便查看内容,这时就可以用这条命令
-----find
find命令相比于grep,要更强大一些,它后面可以接各种各样的条件,精确的查找出所需要的内容
基本用法find [目录] [条件1] [条件2] [条件3]……
–常用条件有:
-type类型(f文件、d目录、l快捷方式)
-name "文档名称"
-user用户名
1 find【目录】-type【f,d,l】
例如[root@localhost~]# find /boot/ -type l
/boot/grub/menu.lst #boot目录下的快捷方式
[root@localhost~]# find /opt/ -type f
/opt/123.txt #opt下的文本文件
[root@localhost~]# find /boot/ -type d
/boot/
/boot/efi
/boot/efi/EFI
/boot/efi/EFI/centos
/boot/grub2
/boot/grub2/i386-pc
/boot/grub2/locale
/boot/grub2/fonts
/boot/grub #查找boot目录下的子目录
2 find【目录】-name【文件名】
[root@localhost~]# find /etc/ -name passwd
/etc/pam.d/passwd
/etc/passwd #找出etc目录下所有以passwd命名的文件夹及文本文件
3 find / -user【用户名】【条件】-exec cp -r {}【文件名】\;
例如:[root@localhost~]# find / -user student –type l -execcp -r {} /root/abc/ \;
这条命令表示的是将student用户下所有快捷方式复制到root下的abc文件下,其中
-user student –type是你查找的条件
中间的“|“在linux中表示管道,作用是将不同命令的结果结合在一起输出,管道可以配
和各种命令一起使用,达到惊奇的效果
-exec是固定字符,记住就可以了
cp -r {} /root/abc/表示将find找到的内容复制到abc目录下,{}就是代表前面find知道的内容
\;反斜杠加分隔符表示命令结束
这个命令可以将各种想要的内容作各种处理,不妨将各种命令结合在一起试下,会有意想不到的效果
以上就是关于查找grep与find的一些简单应用
-
linux grep 查找关键字
2020-10-08 09:27:50一、查看文件追加的含有关键字的内容 tail -f xxxxx.log | grep keyword 二、查看文件含有关键字的内容 cat xxx.log | grep keyword 三、统计文件中关键字出现的次数 cat xxx.log | greo -o keyword | wc -l -
Linux grep查找文件中的关键字
2018-08-29 14:03:43一、查看文件追加的含有关键字的内容 tail -f xxxxx.log | grep keyword 二、查看文件含有关键字的内容 cat xxx.log | grep keyword 三、统计文件中关键字出现的次数 cat xxx.log | grep-o keyword | wc -l ... -
grep常用方法
2021-09-21 12:27:39grep匹配多个关键字 1、 grep ‘字符串’ 2、 反向匹配grep -v ‘字符串’ 3、 grep -E 同时匹配多个关键字–或关系 4、 同时匹配多个关键字–与关系 5、显示前几行和后几行 通配符(匹配文件名) 常用正则表达式(匹配... -
linux通过grep根据关键字查找日志文件上下文
2019-07-01 20:23:00linux通过grep根据关键字查找日志文件上下文 1、在标准unix/linux下的grep命令中,通过以下参数控制上下文的显示: grep -C 10 keyword catalina.out 显示file文件中匹配keyword字串那行以及上下10行 grep -B ... -
Linux中利用grep命令如何检索文件内容详解
2020-12-29 11:33:04前言Linux系统中搜索、查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索。下面来一起看看Linux利用grep命令检索文件内容的详细介绍。方法如下:1、搜索某个文件里面是否... -
grep 搜素关键字时 排除掉某个目录 或者 排除某个文件
2021-03-25 14:11:49示例: grep -rn --exclude-dir=build_* --exclude-dir=kernel --exclude-dir=drivers --exclude=*.out 'abcdefg' -
linux grep 关键字 高亮
2017-04-25 15:47:45没有高亮实在眼睛花 export GREP_OPTIONS='--color=always' GREP_COLOR='1;33' -
grep&sed查找指定字符串并替换
2021-01-22 13:56:09grep&sed查找指定字符串并替换 -
linux下grep查找关键字
2016-12-17 08:59:49根据文件内容递归查找目录 # grep ‘energywise’ * #在当前目录搜索带'energywise'行的文件 # grep -r ‘energywise’ * #在当前目录及其子目录下搜索'energywise'行的文件 # grep -l -r ‘energywise’ * #在... -
58.5 grep查找关键字所在行以及其上下几行
2019-04-19 10:03:45grep查找关键字所在行以及其上下几行 linux系统中,利用grep打印匹配的上下几行 如果在只是想匹配模式的上下几行,grep可以实现。 $grep -5 ‘parttern’ filename//打印匹配行的前后5行 $grep -C 5 ‘parttern... -
0612 grep查找关键字所在行以及其上下几行
2018-06-12 22:15:14linux系统中,利用grep打印匹配的上下几行 如果在只是想匹配模式的上下几行,grep可以实现。 $grep -5 ‘parttern’ inputfile //打印匹配行的前后5行 $grep -C 5 ‘parttern’ inputfile //打印匹配行的前后5行 ... -
linux系统grep命令匹配关键字前后几行内容
2021-07-19 10:07:26grep -C 5 keyword file 从file文件中匹配keyword字串那行以及上下5行 grep -B 5 keyword file 从file文件中匹配keyword及前5行 grep -A 5 keyword file 从file文件中匹配keyword及后5行 -
使用grep查找指定目录下的关键字
2020-11-26 03:57:38对于一个指定的文件来说通常使用下面的方法来查找关键字:grep 'keyword' file如果你懂得正则表达式,那么还可以对关键字作更细致的匹配。但是利用grep查找指定目录下的所有文件我尚不清楚,通过man手册以及论坛求助... -
多个文件中的Grep关键字,并按文件修改日期或结果进行排序
2022-05-10 10:35:12只需使用ls进行排序,然后将结果传递到grep或ag中,例如按日期排序: grep "keyword" $(ls -1rt) -
Linux中grep 显示满足多个关键字的内容或排除含有关键字内容
2020-03-11 14:37:161、grep 同时满足多个关键字 grep -E "word1|word2|word3" file.txt 满足任意条件(word1、word2和word3之一)将匹配。 grep word1 file.txt | grep word2 |grep word3 必须同时满足三个条件(word1、word2和word3)... -
Linux find、grep命令
2022-03-28 13:21:28注意:不指明查找路径表示在当前目录下查找,查找关键字是文件名的一部分。 常用【操作参数】: -name<filename> 按照文件名称查找,查找与 filename 匹配的文件,可使用通配符。 -depth 从指定目录下的... -
Linux之Shell编程(17)--grep关键字详解演示(一)
2021-06-29 10:36:39一.grep关键字介绍 grep是一个常用的文本搜索工具,它的全称是global regular expression print,表示全局正则表达式输出。按字面解释看,它能使用正则表达式搜索文本,并把匹 配的行打印出来。 二.grep语法 grep ...