赞
踩
grep
用于在文件中搜索指定的模式(字符串或正则表达式),并输出匹配的行。
grep [options] pattern [file...]
基本搜索
grep pattern filename
例子:搜索文件 example.txt
中包含字符串 hello
的行。
grep "hello" example.txt
忽略大小写
grep -i pattern filename
例子:忽略大小写搜索 hello
。
grep -i "hello" example.txt
显示行号
grep -n pattern filename
例子:显示匹配行的行号。
grep -n "hello" example.txt
递归搜索
grep -r pattern directory
例子:递归搜索目录中的所有文件。
grep -r "hello" /path/to/directory
显示匹配的文件名
grep -l pattern filename
例子:只显示包含匹配模式的文件名。
grep -l "hello" example.txt
仅显示匹配部分
grep -o pattern filename
例子:只显示匹配的部分而不是整行。
grep -o "hello" example.txt
统计匹配行数
grep -c pattern filename
例子:统计匹配行的数量。
grep -c "hello" example.txt
反转匹配
grep -v pattern filename
例子:显示不包含匹配模式的行。
grep -v "hello" example.txt
显示前后行
grep -A num pattern filename # 显示匹配行及其后 num 行
grep -B num pattern filename # 显示匹配行及其前 num 行
grep -C num pattern filename # 显示匹配行及其前后 num 行
例子:显示匹配行及其前后 2 行。
grep -C 2 "hello" example.txt
使用正则表达式
grep -E "pattern" filename
例子:使用扩展正则表达式搜索。
grep -E "h(ello|i)" example.txt
忽略大小写并显示行号
grep -in "hello" example.txt
递归搜索并显示匹配的文件名
grep -rl "hello" /path/to/directory
仅显示匹配部分并统计匹配行数
grep -co "hello" example.txt
在文件列表中搜索
grep "hello" file1 file2 file3
在命令输出中搜索
dmesg | grep "error"
与 find
结合使用
find /path/to/search -type f -name "*.log" -exec grep "error" {} \;
与 xargs
结合使用
find /path/to/search -type f -name "*.log" | xargs grep "error"
使用 -P
选项支持 Perl 正则表达式
grep -P "\bhello\b" example.txt
搜索包含 IP 地址的行
grep -E "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" example.txt
查找所有空行
grep -E "^$" example.txt
查找包含单词的行
grep -w "hello" example.txt
递归查找并排除某些目录
grep -r --exclude-dir={dir1,dir2} "hello" /path/to/directory
查找并显示匹配行的上下文
grep -C 3 "hello" example.txt
grep
处理多行输出搜索多行模式
grep -Pzo "(?s)start.*?end" example.txt
与 awk
结合使用
awk '/start_pattern/,/end_pattern/' example.txt | grep "middle_pattern"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。