grep 使用

本文介绍了grep命令在Linux环境中的应用,包括查找进程、文件中的关键字、监控CPU和内存占用最大进程以及搜索磁盘占用最大的文件。通过使用如`-r`、`-n`、`-v`等参数,可以实现高效的数据筛选和系统排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

grep

常见参数:

-r : 递归查询目录下的所有文件;

-n:显示行号;

-v:排除关键字;

-o:只输出匹配的字符串;

-num:num为数值,输出匹配的上下num行;

-i:忽略大小写。

几大场景

查找进程

# 查找名称为 emqx 的进程信息
ps -ef | grep emqx 

[root@yao02 ~]# ps -ef | grep emqx
root     23758  6030  0 00:30 pts/0    00:00:00 grep --color=auto emqx
root     29247     1  0 Aug19 ?        00:00:00 /root/emqx/erts-12.1.5/bin/run_erl -daemon //root/emqx/data/root_erl_pipes/yao02@192.168.0.248/ /root/emqx/log exec "/root/emqx/bin/emqx" "console"
root     29250 29247  0 Aug19 pts/4    00:17:55 yao02 -P 2097152 -Q 1048576 -e 256000 -spp true -A 4 -IOt 4 -SDio 8 -- -root /root/emqx -progname root/emqx/bin/emqx -- -home /root -- -boot /root/emqx/releases/4.4.7/start -mode embedded -boot_var ERTS_LIB_DIR /root/emqx/erts-12.1.5/../lib -mnesia dir "/root/emqx/data/mnesia/yao02@192.168.0.248" -config /root/emqx/data/configs/app.2022.08.19.01.06.55.config -kernel net_ticktime 120 -shutdown_time 30000 -pa data/patches -pa /root/emqx/releases/4.4.7/consolidated -setcookie emqxsecretcookie -name yao02@192.168.0.248 -- -vm_args /root/emqx/data/configs/vm.2022.08.19.01.06.55.args -start_epmd false -epmd_module ekka_epmd -proto_dist ekka -- console --
root     29690 29664  0 Aug19 ?        00:03:48 /root/emqx/lib/os_mon-2.7.1/priv/bin/memsup
root     29691 29664  0 Aug19 ?        00:00:01 /root/emqx/lib/os_mon-2.7.1/priv/bin/cpu_sup

# 排除一些无关的进程信息
ps -ef | grep emqx | egrep -v "grep|run_erl|memsup|cpu_sup"


[root@yao02 ~]# ps -ef | grep emqx | egrep -v "grep|run_erl|memsup|cpu_sup"
root     29250 29247  0 Aug19 pts/4    00:17:55 yao02 -P 2097152 -Q 1048576 -e 256000 -spp true -A 4 -IOt 4 -SDio 8 -- -root /root/emqx -progname root/emqx/bin/emqx -- -home /root -- -boot /root/emqx/releases/4.4.7/start -mode embedded -boot_var ERTS_LIB_DIR /root/emqx/erts-12.1.5/../lib -mnesia dir "/root/emqx/data/mnesia/yao02@192.168.0.248" -config /root/emqx/data/configs/app.2022.08.19.01.06.55.config -kernel net_ticktime 120 -shutdown_time 30000 -pa data/patches -pa /root/emqx/releases/4.4.7/consolidated -setcookie emqxsecretcookie -name yao02@192.168.0.248 -- -vm_args /root/emqx/data/configs/vm.2022.08.19.01.06.55.args -start_epmd false -epmd_module ekka_epmd -proto_dist ekka -- console --

文件查找关键字

# 查找当前路径下所有的txt文件匹配关键字 Haha 的上下5行,并且忽略大小写,输出文件名称、行号
grep -5 "Haha" *.txt  -r -n -i

text1.txt-1-56789
text1.txt-2-asdajsdbasjdsadbasjbxa jahdbjasdq7rebjadsjkfadsjc sdjnaskdabjsfcbasdhcdvndslkal
text1.txt-3-asjdnasjkcasjd
text1.txt-4-sasjkdcanks
text1.txt-5-
text1.txt:6:shdbaa hahhahahahahaha
text1.txt-7-
grep是一种在Linux和Unix操作系统中用于搜索文本的命令行实用程序。它可以用来在一个或多个文件中查找匹配的字符串,并输出匹配的行。以下是一些常见的grep使用方法: 1. 搜索一个文件中的字符串 ``` grep "search_string" file.txt ``` 这个命令将在file.txt文件中搜索字符串"search_string"。如果找到了匹配的行,它们将被输出到终端。 2. 搜索多个文件中的字符串 ``` grep "search_string" file1.txt file2.txt file3.txt ``` 这个命令将在file1.txt、file2.txt和file3.txt文件中搜索字符串"search_string"。如果找到了匹配的行,它们将被输出到终端。 3. 使用正则表达式搜索 ``` grep -E "regex_pattern" file.txt ``` 这个命令使用正则表达式搜索file.txt文件中匹配"regex_pattern"的行。如果找到了匹配的行,它们将被输出到终端。 4. 搜索一个目录中的所有文件 ``` grep "search_string" /path/to/directory/* ``` 这个命令将在/path/to/directory/目录下的所有文件中搜索字符串"search_string"。如果找到了匹配的行,它们将被输出到终端。 5. 搜索时忽略大小写 ``` grep -i "search_string" file.txt ``` 这个命令将在file.txt文件中搜索字符串"search_string",忽略大小写。如果找到了匹配的行,它们将被输出到终端。 这些只是grep的一些基本使用方法。grep有很多其他的选项和用法,可以通过man grep来查看完整的帮助文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值