常用命令
高亮特定字符串,但不过滤:
grep –color -E “^|somestring” “/path/to/file”
根据内容,来查找文件(查找是否包含某个字符串的文件)
# 查找包含字符串的文件
grep –files-with-matches “somestring” “/path/to/file”
# 查找不包含字符串的文件
grep –files-without-match “somestring” “/path/to/file”
打印匹配内容,而非整行内容:
# 如下命令仅能输出我们的搜索内容,但是意义不大
grep –only-matching “somestring” “/path/to/file”
# 打印匹配正则表达式的部分,这里使用 -P, –perl-regexp 选项
# 该命令能够输出 \w+ 的
grep –only-matching -P ‘(?<=foo)\w+(?=bar)’ “/path/to/file” # 这里使用正则 Lookaround 特性
打印首个匹配的内容,而非每个匹配行:
grep –max-count 1 “somestring” “/path/to/file”
# 通常,如下用法才有意义
grep –max-count 1 -P ‘(?<=strLeft)somestring(?=strRight)’ “/path/to/file”
语法格式
grep [OPTIONS] PATTERN [FILE…]
grep [OPTIONS] [-e PATTERN]… [-f FILE]… [FILE…]
命令描述
命名grep在输入文件FILE中搜索包含与给定PATTERN匹配的行。如果未指定文件,或者给出文件“-”,则grep从标准输入读取数据进行搜索。默认情况下,命令grep会打印匹配的行。
变体程序egrep、fgrep、rgrep分别等同于使用了-E,-F,-r选项的grep(1)命令。
命令选项
匹配选择
-E, –extended-regexp 将PATTERN解释为扩展正则表达式(ERE,见下文)。
-G, –basic-regexp 将PATTERN解释为基本正则表达式(BRE,见下文)。这是默认值。
-F, –fixed-strings 将PATTERN解释为固定字符串列表(而不是正则表达式),由换行符分隔,其中任何一个都要匹配。
-P, –perl-regexp 将PATTERN解释为Perl兼容的正则表达式(PCRE)。这是高[……]