grep:在文件中搜索文本

搜索文件中包含特定模式的文本行

grep "pattern" filename
grep "pattern" file1 file2 file3
grep "pattern" file1 file2 file3  --color=auto#着重标记匹配到的单词

使用正则表达式,需要加-E选项
grep -E "[a-z]+" filename
或者
egrep "[a-z]+" filename

只输出文件中匹配到的文本部分
echo this is a line | egrep -o "[a-z]." 
line

打印包含匹配行之外的所有行
grep  -v "pattern" filename

统计文件中包含匹配字符串的行数
grep  -c "pattern" filename

统计文件中匹配字符串的数量
grep -o "pattern" filename | wc -l

打印包含匹配字符串的行数
grep "pattern" -n filename
grep "pattern" -n file1 file2 file3

打印匹配字符串的字节偏移位置

echo gnu is not unix | grep -b -o "not"
7:not

搜索多个文件并找出匹配文本位于哪个文件中
grep -l "pattern" file1 file2

搜索多个文件并找出不匹配文本位于哪个文件中
grep -L "pattern" file1 file2

忽略样式中的大小写
echo hello world | grep -i "HELLO"
hello

匹配多个样式
grep -e "pattern1"  "pattern2"

打印匹配文本之前或之后的行 
grep "pattern" -A  3 filename# 打印匹配结果之后的3行
grep "pattern" -B 3 filename# 打印匹配结果之前的3行
grep "pattern" -C 3 filename# 打印匹配结果之前与之后的3行

如果有多个匹配,使用--作为各部分的分节符
echo -e "a\nb\bc\n\a\nb\nc" | grep a -A 1
a
b
--
a
b
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容