grep是一个Linux / Unix命令行工具,用于在指定的文件中搜索字符串。文本搜索模式被称为正则表达式。当它找到匹配项时,它将输出带有结果的行。在搜索大型日志文件时,grep命令非常方便。
grep一般用于查找文件中含有某些字符串的行,其命名格式如下
基础语法
grep [OPTIONS] PATTERN [FILE...]
常用参数
- -c: 只输出匹配行的数目
- -h: 打印出匹配的行,但是不显示其文件名
- -i: 不区分大小写
- -l: 查询多文件的时候只输出包含匹配字符的文件名
- -n: 打印匹配行以及行号
- -v: 反向匹配,即显示不匹配的行
- -w: 匹配整个单词,而不是整个字符串
- -b: 显示匹配的位置
- -o: 只显示匹配的字串,忽悠其他信息
- -s: 不显示错误信息
- -e exp:匹配多个
- -E:使用正则匹配
常用示例
grep在linux使用过程中其常用使用实例:
- grep递归查找/etc目录及其子目录中含有”user“字符的文件,并显示文件与其含有”user“字符串的行
grep -r "user" /etc
- 只匹配一个单词,而不是做为单词的一部分去匹配
grep -w user /etc/passwd
- 查找两个字符串
grep "user|USER" /etc/passwd
- 统计匹配行的数量
grep -c "user" /etc/passwd
- 统计匹配项的数量:
grep -o
只会输出匹配项,而忽略行;wc可以算出行数:
grep -o 'needle' file | wc -l
- 显示查到的行在文件中的行号
grep -n "user" /etc/passwd
- 只显示不匹配的行
grep -v "user" /etc/passwd
- 只输出包含的文件名而不输出文件行
grep -l "user" /etc/*
Was this helpful?
0 / 0