Grep 命令的15种常用用法
本文详细介绍了如何使用grep命令在单个或多个文件中查找指定字符串,包括忽略大小写、使用正则表达式、查找单词边界以及显示匹配前后的内容。此外,还讲解了如何高亮显示结果、递归搜索目录、取反搜索、显示匹配行数、只显示匹配内容和位置信息。这些技巧对于日常文件检索和文本处理工作非常实用。
在单个文件中查询指定字符串
grep "literal_string" filename
在多个文件中查找指定字符串,FILE_PATTERN 表示文件通配符表示。比如当前目录下的所有文件 ./*
grep "string" FILE_PATTERN
查找的过程中忽略大小写
grep -i "string" FILE
使用正则表达式来查找字符串。
grep "REGEX" filename
1
? 0到1次
* 0到多次
+ 1到多次
{n} 之匹配n次
{n,} 最少n次
{,m} 最多m次
{n,m} 匹配最少n次,最多m次
匹配完整的单词,而不是子串。
grep -iw "is" demo_file # 只会完整的匹配is这个单词
现在匹配字符串前面/后面/前后两边的字符串。(After/Before/Around)。
grep -A 3 -i "example" demo_text # After 连着打印“example” 单词后的2行,共3行
grep -B 3 -i "example" demo_text # Before 连着打印“example” 单词前的2行,共3行
grep -C 3 -i "example" demo_text # Both 连着打印“example” 单词前后的2行,共5行
使用 GREP_OPTIONS 高亮grep的显示结果
export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'
# 或者别名一下
alias grep='grep --color=auto'
使用 -r 参数来实现递归的搜索目录
grep -r "ramesh" *
取反搜索结果
grep -v "go" demo_text # 显示哪些不包含 go 子串的行
取反(多个)指定模式的匹配结果
grep -v -e "pattern1" -e "pattern2" filename # 显示不符合pattern1和pattern2的结果的数据
计算出命中匹配的总行数
grep -c "pattern" filename # 6
用 -l 只显示匹配命中的文件名称,而不显示具体匹配的内容。
只显示匹配中的字符串,而不是一行。
$ grep -o "is.*line" demo_file # 只显示 is 和 line 之间的字符串
显示匹配的字符串位置。该位置是相对于整个文件的字节位置,不是行数
grep -o -b "pattern" file
使用 -n 显示匹配的字符串在文件中的行数。
grep -n "go" demo_text
原文链接:https://blog.csdn.net/u013019701/article/details/120006155
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




