grep
是 Linux 中非常强大的文本搜索工具,用于在文件中查找指定的字符串模式。以下是 grep 查找字符串的各种用法:
grep "要查找的字符串" 文件名
示例:
grep "hello" file.txt # 在file.txt中查找"hello"字符串
忽略大小写:
grep -i "string" file.txt
显示行号:
grep -n "string" file.txt
反向匹配(显示不包含该字符串的行):
grep -v "string" file.txt
统计匹配行数:
grep -c "string" file.txt
递归搜索目录:
grep -r "string" /path/to/directory
显示匹配行的前后内容:
grep -A 3 "string" file.txt # 显示匹配行及后3行
grep -B 2 "string" file.txt # 显示匹配行及前2行
grep -C 1 "string" file.txt # 显示匹配行及前后各1行
使用正则表达式:
grep "^start" file.txt # 查找以"start"开头的行
grep "end$" file.txt # 查找以"end"结尾的行
grep "[0-9]" file.txt # 查找包含数字的行
查找多个模式:
grep -e "pattern1" -e "pattern2" file.txt
只显示匹配的部分:
grep -o "string" file.txt
搜索压缩文件:
zgrep "string" file.gz
在多个文件中查找:
grep "error" *.log
查找并高亮显示:
grep --color=auto "important" file.txt
查找进程:
ps aux | grep "nginx"
查找并统计所有Java文件中的某个方法调用:
grep -r --include="*.java" "toString()" /path/to/project | wc -l
记住,grep
默认使用基本正则表达式(BRE),如需使用扩展正则表达式(ERE),可以使用 -E
选项或直接使用 egrep
命令。