Home » Linux » GREP常用用法

在单个文件中查询指定字符串

grep "literal_string" filename

在多个文件中查找指定字符串,FILE_PATTERN 表示文件通配符表示。比如当前目录下的所有文件 ./*

grep "string" FILE_PATTERN

查找的过程中忽略大小写

grep -i "string" FILE

使用正则表达式来查找字符串。

grep "REGEX" filename
? 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

标签: Linux Grep

添加新评论

V