grep命令常见用法
查询文件中的指定内容,并返回文本行
grep "hello world" a.txt
多个文件查询指定内容
grep "hello world" a.txt b.txt c.txt
输出除指定内容文本行之外的所有行
grep -v "hello world" a.txt
标记匹配颜色
grep "hello world" a.txt --color=auto
使用正则表达式,匹配符合条件的文本行
grep -E "[1-9]+" a.txt
grep -P "(\d{3}\-){2}\d{4}" a.txt
grep -P
支持更多高级的正则表达式功能,而grep -E
则提供了一些常用的扩展功能。
正则表达式模式(\d{3}\-){2}\d{4}
匹配连续出现两次的三个数字后跟一个连字符,再加上四个数字的模式。只有前两行匹配了这个模式,因此它们被返回作为结果。最后一行不匹配模式,所以被忽略。
统计文件或者文本中包含匹配字符串的行数 -c 选项:
grep -c "hello world" a.txt
搜索历史命令中输入过的命令的记录
history | grep git
输出包含匹配字符串的行数加结果 -n选项
grep "text" -n a.txt
1:This is a text file.
2:It contains some text.
3:Here is another line of text.
搜索多个文件并查找匹配文本在哪些文件中
grep -l "text" file1 file2 file3
grep递归搜索文件
多级目录搜索,递归查询文件夹下的文件是否包含指定内容
grep "text" . -r -n
忽略匹配样式中的字符大小写
echo "hello world" | grep -i "HELLO"
这个指令用了删除文件用的(-Z
选项以空字符作为文件名之间的分隔符)
grep -lZ "text" file* | xargs -0 rm
在第二个文件中,查找和第一个相匹配的文本行
cat test1.txt | grep -f key.log