Linux文本过滤命令grep详解

在Linux中,grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。

语法

grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

参数说明

参数 说明
-a, text 不要忽略二进制的数据
-A<显示行数>,
after-context=<显示行数>
除了显示符合范本样式的那一列之外,并显示该行之后的内容
-b, byte-offset 在显示符合样式的那一行之前,标示出该行第一个字符的编号
-B<显示行数>,
before-context=<显示行数>
除了显示符合样式的那一行之外,并显示该行之前的内容
-c, count 计算符合样式的列数
-C<显示行数>, -<显示行数>,
context=<显示行数>
除了显示符合样式的那一行之外,并显示该行之前后的内容
-d <动作>,
directories=<动作>
指定要查找目录时,必须使用该参数,否则grep指令将回报信息并停止动作
-e<范本样式>,
regexp=<范本样式>
指定字符串做为查找文件内容的样式
-E, extended-regexp 将样式为延伸的正则表达式来使用
-f<规则文件>,
file=<规则文件>
指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式
-F, fixed-regexp 将样式视为固定字符串的列表
-G, basic-regexp 将样式视为普通的表示法来使用
-h, no-filename 在显示符合样式的那一行之前,不标示该行所属的文件名称
-H, with-filename 在显示符合样式的那一行之前,表示该行所属的文件名称
-i, -y,  --ignore-case 忽略字符大小写
-l, file-with-matches 列出文件内容符合指定的样式的文件名称
-L, files-without-match 列出文件内容不符合指定的样式的文件名称
-n, line-number 在显示符合样式的那一行之前,标示出该行的列数编号
-o, only-matching 只显示匹配PATTERN 部分
-q, quiet或--silent 不显示任何信息
-r, recursive 同"-d recurse"
-s, no-messages 不显示错误信息
-v, invert-match 显示不包含匹配文本的所有行
-V, version 显示版本信息
-w, word-regexp 只显示全字符合的列
-x --line-regexp 只显示全列符合的列

举例

# 显示行号
grep -n root /etc/passwd
# 递归查找
grep -r update /etc/acpi
# 反向查找
grep -v test *test*

原创文章禁止转载:技术学堂 » Linux文本过滤命令grep详解

精彩评论

8+1=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏