NAME
grep, egrep, fgrep - 打 印 匹 配 给 定 模 式 的 行
总 览 SYNOPSIS
grep
[options] PATTERN [FILE...]
grep [options] [-e PATTERN |
-f FILE] [FILE...]
描 述 DESCRIPTION
Grep 搜 索 以 FILE 命 名 的 文 件 输 入 (或 者 是 标 准 输 入 , 如 果 没 有 指 定 文 件 名 , 或 者 给 出 的 文 件 名 是 - 的 话 ), 寻 找 含 有 与 给 定 的 模 式 PATTERN 相 匹 配 的 内 容 的 行 。 默 认 情 况 下 , grep 将 把 含 有 匹 配 内 容 的 行 打 印 出 来 。 另 外 , 也 可 以 使 用 两 个 变 种 程 序 egrep 和 fgrep 。 Egrep 与 grep -E 相 同 。 Fgrep 与 grep -F 相 同 。
选 项 OPTIONS
-A
NUM, --after-context=NUM 打
印 出 紧 随 匹 配
的 行 之 后 的 下
文 NUM 行 。 在 相
邻 的 匹 配 组 之
间 将 会 打 印 内
容 是 -- 的 一 行
。
-a, --text 将 一 个 二
进 制 文 件 视 为
一 个 文 本 文 件
来 处 理 ; 它 与
--binary-files=text 选 项 等
价 。
-B NUM, --before-context=NUM
打 印 出 匹 配 的
行 之 前 的 上 文
NUM 行 。 在 相 邻
的 匹 配 组 之 间
将 会 打 印 内 容
是 -- 的 一 行 。
-C NUM, --context=NUM 打
印 出 匹 配 的 行
的 上 下 文 前 后
各 NUM 行 。 在 相
邻 的 匹 配 组 之
间 将 会 打 印 内
容 是 -- 的 一 行
。
-b, --byte-offset 在 输 出
的 每 行 前 面 同
时 打 印 出 当 前
行 在 输 入 文 件
中 的 字 节 偏 移
量 。
--binary-files=TYPE 如 果 一
个 文 件 的 起 始
几 个 字 节 表 明
文 件 包 含 二 进
制 数 据 , 那 么
假 定 文 件 是 TYPE
类 型 的 。 默 认
情 况 下 , TYPE 是
binary , 并 且 grep
一 般 会 输 出 一
个 一 行 的 消 息
说 一 个 二 进 制
文 件 匹 配 , 或
者 如 果 没 有 匹
配 的 话 就 没 有
消 息 输 出 。 如
果 类 型 TYPE 是
without-match , 那 么 grep
假 定 二 进 制 文
件 不 会 匹 配 ;
这 样 做 与 -I 选
项 等 价 。 如 果
类 型 TYPE 是 text ,
那 么 grep 将 一 个
二 进 制 文 件 视
为 文 本 文 件 来
处 理 ; 它 与 -a
选 项 等 价 。 警
告 : grep --binary-files=text
可 能 会 输 出 二
进 制 的 无 用 内
容 。 如 果 输 出
设 备 是 一 个 终
端 , 并 且 终 端
的 驱 动 将 这 些
输 出 中 的 一 些
当 作 命 令 , 可
能 会 带 来 恶 劣
的 副 作 用 。
--colour[=WHEN],
--color[=WHEN] 在 匹 配
的 行 周 围 以
GREP_COLOR 环 境 变 量
中 指 定 的 记 号
来 标 记 。 WHEN 可 以
是 ’never’, ’always’, 或
是 ’auto’。
-c, --count 禁 止 通 常
的 输 出 ; 作 为
替 代 , 为 每 一
个 输 入 文 件 打
印 一 个 匹 配 的
行 的 总 数 。 如
果 使 用 -v, --invert-match
选 项 (参 见 下 面
), 将 是 不 匹 配
的 行 的 总 数 。
-D ACTION, --devices=ACTION
如 果 输 入 文 件
是 一 个 设 备 , FIFO
或 是 套 接 字 (socket)
, 使 用 动 作 ACTION
来 处 理 它 。 默
认 情 况 下 , 动
作 ACTION 是 read ,
意 味 着 设 备 将
视 为 普 通 文 件
那 样 来 读 。 如
果 动 作 ACTION 是
skip , 将 不 处 理
而 直 接 跳 过 设
备 。
-d ACTION, --directories=ACTION
如 果 输 入 文 件
是 一 个 目 录 ,
使 用 动 作 ACTION 来
处 理 它 。 默 认
情 况 下 , 动 作
ACTION 是 read , 意
味 着 目 录 将 视
为 普 通 文 件 那
样 来 读 。 如 果
动 作 ACTION 是 skip
, 将 不 处 理 而
直 接 跳 过 目 录
。 如 果 动 作 ACTION
是 recurse , grep 将
递 归 地 读 每 一
目 录 下 的 所 有
文 件 。 这 样 做
和 -r 选 项 等 价
。
-E, --extended-regexp 将 模 式
PATTERN 作 为 一 个 扩
展 的 正 则 表 达
式 来 解 释 (参 见
下 面 )。
-e PATTERN, --regexp=PATTERN
使 用 模 式 PATTERN 作
为 模 式 ; 在 保
护 以 - 为 起 始
的 模 式 时 有 用
。
-F, --fixed-strings 将 模 式
PATTERN 视 为 一 个 固
定 的 字 符 串 的
列 表 , 用 新 行
(newlines) 分 隔 , 只 要
匹 配 其 中 之 一
即 可 。
-P, --perl-regexp 将 模 式
PATTERN 作 为 一 个 Perl
正 则 表 达 式 来
解 释 。
-f FILE, --file=FILE 从
文 件 FILE 中 获 取
模 式 , 每 行 一
个 。 空 文 件 含
有 0个 模 式 , 因
此 不 匹 配 任 何
东 西 。
-G, --basic-regexp 将 模 式
PATTERN 作 为 一 个 基
本 的 正 则 表 达
式 (参 见 下 面 ) 来
解 释 。 这 是 默
认 值 。
-H, --with-filename 为 每 个
匹 配 打 印 文 件
名 。
-h, --no-filename 当 搜 索
多 个 文 件 时 ,
禁 止 在 输 出 的
前 面 加 上 文 件
名 前 缀 。
--help 输 出 一 个 简 短 的 帮 助 信 息 。 | |
-I 处 理 一 个 二 进 制 文 件 , 但 是 认 为 它 不 包 含 匹 配 的 内 容 。 这 和 |
--binary-files=without-match
选 项 等 价 。
-i, --ignore-case 忽 略 模
式 PATTERN 和 输 入 文
件 中 的 大 小 写
的 分 别 。
-L, --files-without-match 禁 止
通 常 的 输 出 ;
作 为 替 代 , 打
印 出 每 个 在 通
常 情 况 下 不 会
产 生 输 出 的 输
入 文 件 的 名 字
。 对 每 个 文 件
的 扫 描 在 遇 到
第 一 个 匹 配 的
时 候 就 会 停 止
。
-l, --files-with-matches 禁 止
通 常 的 输 出 ;
作 为 替 代 , 打
印 出 每 个 在 通
常 情 况 下 会 产
生 输 出 的 输 入
文 件 的 名 字 。
对 每 个 文 件 的
扫 描 在 遇 到 第
一 个 匹 配 的 时
候 就 会 停 止 。
-m NUM, --max-count=NUM 在
找 到 NUM 个 匹 配
的 行 之 后 , 不
再 读 这 个 文 件
。 如 果 输 入 是
来 自 一 个 普 通
文 件 的 标 准 输
入 , 并 且 已 经
输 出 了 NUM 个 匹
配 的 行 , grep 保
证 标 准 输 入 被
定 位 于 退 出 时
的 最 后 一 次 匹
配 的 行 之 后 ,
不 管 是 否 指 定
了 要 输 出 紧 随
的 下 文 的 行 。
这 样 可 以 使 一
个 调 用 程 序 恢
复 搜 索 。 当 grep
在 NUM 个 匹 配 的
行 之 后 停 止 ,
它 会 输 出 任 何
紧 随 的 下 文 的
行 。 当 使 用 了
-c 或 --count 选 项 的
时 候 , grep 不 会
输 出 比 NUM 更 多
的 行 。 当 指 定
了 -v 或 --invert-match 选
项 的 时 候 , grep
会 在 输 出 NUM 个
不 匹 配 的 行 之
后 停 止 。
--mmap 如 果 可 能 的 话 , 使 用 |
mmap(2) 系 统 调 用 来 读 取 输 入 , 而 不 是 默 认 的 |
read(2) 系 统 调 用 。 在 一 些 情 况 下 , --mmap 提 供 较 好 的 性 能 。 但 是 , 如 果 一 个 输 入 文 件 在 grep 正 在 操 作 时 大 小 发 生 变 化 , 或 者 如 果 发 生 了 一 个 I/O 错 误 , --mmap 可 能 导 致 不 可 知 的 行 为 (包 括 core dumps)。
-n, --line-number
在 输 出 的 每 行
前 面 加 上 它 所
在 的 文 件 中 它
的 行 号 。
-o, --only-matching 只 显 示
匹 配 的 行 中 与
PATTERN 相 匹 配 的 部
分 。
--label=LABEL 将 实 际 上
来 自 标 准 输 入
的 输 入 视 为 来
自 输 入 文 件 LABEL
。 这 对 于 zgrep 这 样
的 工 具 非 常 有
用 , 例 如 : gzip -cd
foo.gz |grep --label=foo something
--line-buffering 使 用 行 缓
冲 , it can be a performance penality.
-q, --quiet, --silent 安 静
。 不 向 标 准 输
出 写 任 何 东 西
。 如 果 找 到 任
何 匹 配 的 内 容
就 立 即 以 状 态
值 0 退 出 , 即 使
检 测 到 了 错 误
。 参 见 -s 或
--no-messages 选 项 。
-R, -r, --recursive 递 归
地 读 每 一 目 录
下 的 所 有 文 件
。 这 样 做 和 -d
recurse 选 项 等 价 。
--include=PATTERN 仅 仅 在 搜
索 匹 配 PATTERN 的 文
件 时 在 目 录 中
递 归 搜 索 。
--exclude=PATTERN 在 目 录 中
递 归 搜 索 , 但
是 跳 过 匹 配 PATTERN
的 文 件 。
-s, --no-messages 禁 止 输
出 关 于 文 件 不
存 在 或 不 可 读
的 错 误 信 息 。
对 于 可 移 植 性
需 要 注 意 : 与
GNU grep 不 同 ,
传 统 的 grep 不 遵
守 POSIX.2 规 范 ,
因 为 传 统 的 grep
缺 少 一 个 -q 选
项 , 而 它 的 -s
选 项 与 GNU grep
的 -q 选 项 行 为
相 似 。 需 要 可
移 植 到 传 统 grep
的 shell 脚 本 应 当 避
免 使 用 -q 和 -s
选 项 , 而 应 当
将 输 出 重 定 向
到 /dev/null 。
-U, --binary 将 文 件 视
为 二 进 制 。 默
认 情 况 下 , 在 MS-DOS
和 MS-Windows 系 统 中 ,
grep 通 过 从 文 件
中 读 取 头 部 的 32kB
内 容 来 判 断 它
的 文 件 类 型 。
如 果 grep 判 断 文
件 是 一 个 文 本
文 件 , 它 将 原
始 文 件 内 容 中
的 CR 字 符 去 除 (使
得 含 有 ^ 和 $
的 正 则 表 达 式
可 以 正 常 工 作
)。 指 定 -U 将 不
进 行 这 些 工 作
, 而 使 所 有 文
件 保 持 不 变 地
读 取 并 传 递 给
匹 配 机 制 。 如
果 文 件 是 一 个
以 CR/LF 换 行 的 文 本
文 件 , 这 样 作
将 导 致 一 些 正
则 表 达 式 失 败
。 这 个 选 项 在 MS-DOS
和 MS-Windows 之 外 的 系
统 中 无 效 。
-u, --unix-byte-offsets 报 告 Unix
风 格 的 字 节 偏
移 量 。 这 个 开
关 使 得 grep 报 告
字 节 偏 移 量 时
, 将 文 件 作 为 Unix
风 格 的 文 本 文
件 看 待 , 也 就
是 说 将 CR 字 符 去
掉 。 这 将 产 生
与 在 一 台 Unix 主 机
上 运 行 grep 完 全
相 同 的 结 果 。
除 非 同 时 使 用
-b 选 项 , 否 则
这 个 选 项 无 效
。 这 个 选 项 在 MS-DOS
和 MS-Windows 之 外 的 系
统 中 无 效 。
-V, --version 向 标 准 错
误 输 出 打 印 grep
的 版 本 号 。 版
本 号 应 当 包 含
在 所 有 的 bug 报 告
中 (参 见 下 面 )。
-v, --invert-match 改 变 匹
配 的 意 义 , 只
选 择 不 匹 配 的
行 。
-w, --word-regexp 只 选 择
含 有 能 组 成 完
整 的 词 的 匹 配
的 行 。 判 断 方
法 是 匹 配 的 子
字 符 串 必 须 是
一 行 的 开 始 ,
或 者 是 在 一 个
不 可 能 是 词 的
组 成 的 字 符 之
后 。 与 此 相 似
, 它 必 须 是 一
行 的 结 束 , 或
者 是 在 一 个 不
可 能 是 词 的 组
成 的 字 符 之 前
。 词 的 组 成 字
符 是 字 母 , 数
字 , 还 有 下 划
线 。
-x, --line-regexp 只 选 择
能 匹 配 完 整 一
行 的 匹 配 。
-y |
-i 的 同 义 词 , 废 弃 不 用 。 |
-Z, --null 输 出 一 个 全 零 字 节 ( ASCII 码 中 的 NUL 字 符 ) 而 不 是 一 般 情 况 下 输 出 在 文 件 名 之 后 的 字 符 。 例 如 , grep -lZ 在 每 个 文 件 名 之 后 输 出 一 个 全 零 字 节 而 不 是 普 通 的 新 行 符 。 这 个 选 项 使 得 输 出 清 楚 明 白 , 即 使 文 件 名 的 表 示 中 包 含 特 殊 字 符 比 如 新 行 符 。 这 个 选 项 可 以 与 命 令 find -print0, perl -0, sort -z, 和 xargs -0 一 起 使 用 , 来 处 理 任 意 的 文 件 名 , 即 使 是 那 些 含 有 新 行 符 的 文 件 名 。
正 则 表 达 式 REGULAR EXPRESSIONS
一 个 正 则 表 达 式 是 一 个 描 述 了 一 个 字 符 串 集 合 的 模 式 。 正 则 表 达 式 的 构 造 类 似 于 算 术 表 达 式 , 使 用 各 种 各 样 的 操 作 符 来 将 更 小 的 表 达 式 连 在 一 起 。
Grep 能 理 解 两 种 不 同 版 本 的 正 则 表 达 式 语 法 : “basic” 和 “extended”。 在 GNU grep 中 , 两 种 语 法 可 以 实 现 的 功 能 是 没 有 区 别 的 。 在 其 他 实 现 中 , 基 本 (basic) 正 则 表 达 式 表 达 能 力 要 弱 一 点 。 下 面 的 描 述 适 用 于 扩 展 的 (extended) 正 则 表 达 式 , 它 与 基 本 正 则 表 达 式 的 区 别 会 在 最 后 做 一 个 总 结 。 基 本 的 构 造 块 是 匹 配 单 个 字 符 的 正 则 表 达 式 。 大 部 分 字 符 , 包 括 所 有 字 母 和 数 字 , 是 匹 配 它 们 自 身 的 正 则 表 达 式 。 任 何 具 有 特 殊 含 义 的 元 字 符 可 以 通 过 前 置 一 个 反 斜 杠 来 引 用 。 (may be quoted by preceding it with a backslash.) 方 括 号 表 达 式 (bracket) 是 一 个 字 符 序 列 , 放 在 [ 和 ] 当 中 。 它 匹 配 序 列 中 的 任 何 一 个 字 符 ; 如 果 序 列 中 的 第 一 个 字 符 是 脱 字 符 (caret) ^ 那 么 它 匹 配 不 在 序 列 中 的 任 何 一 个 字 符 。 例 如 , 正 则 表 达 式 [0123456789] 匹 配 任 何 一 个 数 字 。 在 方 括 号 表 达 式 之 中 , 一 个 范 围 表 达 式 (range) 由 两 个 字 符 组 成 , 中 间 用 一 个 连 字 符 (hyphen) 分 隔 。 它 匹 配 在 这 两 个 字 符 之 间 的 任 何 一 个 字 符 , 使 用 本 地 化 的 序 列 顺 序 和 字 符 集 。 (that sorts between the two characters,inclusive, using the locale’s collating sequence and character set.) 例 如 , 在 默 认 的 C locale中 , [a-d] 与 [abcd] 等 价 。 典 型 的 , 许 多 locale 将 字 符 以 字 典 顺 序 排 序 , 在 这 些 locale 中 , [a-d] 不 与 [abcd] 等 价 ; 例 如 它 可 能 与 [aBbCcDd] 等 价 。 要 获 得 传 统 的 对 方 括 号 表 达 式 的 解 释 , 可 以 设 定 环 境 变 量 LC_ALL 值 为 C 来 使 用 locale C 。 最 后 , 在 方 括 号 表 达 式 中 有 一 些 预 定 义 的 字 符 类 , 如 下 所 示 。 它 们 的 名 字 是 自 说 明 的 , 它 们 是 [:alnum:](字 母 和 数 字 ), [:alpha:](字 母 ), [:cntrl:](), [:digit:](数 字 ), [:graph:](), [:lower:](小 写 字 母 ), [:print:](可 打 印 字 符 ), [:punct:](), [:space:](空 格 ), [:upper:](大 写 字 母 ), 和 [:xdigit:] 。 例 如 , [[:alnum:]] 意 思 是 [0-9A-Za-z] , 但 是 后 一 种 表 示 方 法 依 赖 于 locale C 和 ASCII 字 符 编 码 , 而 前 一 种 是 与 locale 和 字 符 集 无 关 的 。 (注 意 这 些 字 符 类 名 中 的 方 括 号 也 是 符 号 名 称 的 一 部 分 , 必 须 包 含 在 用 来 为 序 列 定 界 的 方 括 号 之 中 。 ) 大 多 数 元 字 符 处 于 序 列 中 时 会 失 去 它 们 的 特 殊 意 义 。 为 了 包 含 一 个 字 面 意 义 (literal) 的 ] , 需 要 将 它 放 在 序 列 的 最 前 。 与 此 相 似 , 为 了 包 含 一 个 字 面 意 义 (literal) 的 ^ , 需 要 将 它 放 在 除 了 序 列 最 前 之 外 的 其 他 位 置 。 最 后 , 为 了 包 含 一 个 字 面 意 义 (literal) 的 - , 需 要 将 它 放 在 序 列 最 后 。 句 点 符 (period) . 匹 配 任 何 一 个 字 符 。 符 号 \w 是 [[:alnum:]] 的 同 义 词 , \W 是 [^[:alnum]] 的 同 义 词 。 脱 字 符 (caret) ^ 和 美 元 标 记 (dollar) $ 分 别 是 匹 配 一 行 的 首 部 和 尾 部 的 空 字 串 的 元 字 符 。 符 号 \< 和 \> 分 别 是 匹 配 一 个 词 的 首 部 和 尾 部 的 空 字 串 的 元 字 符 。 符 号 \b 匹 配 一 个 词 边 缘 (edge) 的 空 字 串 , 符 号 \B 匹 配 不 处 于 一 个 词 的 边 缘 的 空 字 串 。 一 个 正 则 表 达 式 后 面 可 以 跟 随 多 种 重 复 操 作 符 之 一 。
? 先 前 的 项 是 可 选 的 , 最 多 匹 配 一 次 。 |
||
* 先 前 的 项 可 以 匹 配 零 次 或 多 次 。 |
||
+ 先 前 的 项 可 以 匹 配 一 次 或 多 次 。 |
||
{n} 先 前 的 项 将 匹 配 恰 好 |
n 次 。
{n,} 先 前 的 项 可 以 匹 配 |
n 或 更 多 次 。 |
||
{n,m} 先 前 的 项 将 匹 配 至 少 |
n 词 , 但 是 不 会 超 过 m 次 。 |
两 个 正 则 表 达 式 可 以 连 接 到 一 起 ; 得 出 的 正 则 表 达 式 可 以 匹 配 任 何 由 两 个 分 别 匹 配 连 接 前 的 子 表 达 式 的 子 字 符 串 连 接 而 成 的 字 符 串 。 两 个 正 则 表 达 式 可 以 用 中 缀 操 作 符 | 联 合 到 一 起 , 得 出 的 正 则 表 达 式 可 以 匹 配 任 何 匹 配 联 合 前 的 任 何 一 个 子 表 达 式 的 字 符 串 。 重 复 操 作 符 的 优 先 级 比 连 接 高 , 接 下 来 又 比 选 择 的 优 先 级 高 。 一 个 完 整 的 子 表 达 式 可 以 用 圆 括 号 (parentheses) 括 住 来 超 越 这 些 优 先 级 规 则 。 (to override these precedence rules.) 反 向 引 用 \n 中 , n 是 一 个 数 字 , 匹 配 正 则 表 达 式 中 , 以 第 n 个 圆 括 号 括 住 的 子 表 达 式 已 匹 配 的 子 字 符 串 。 在 基 本 正 则 表 达 式 中 , 元 字 符 ?, +, {, |, (, 和 ) 丧 失 了 它 们 的 特 殊 意 义 ; 作 为 替 代 , 使 用 加 反 斜 杠 的 (backslash) 版 本 \?, \+, \{, \|, \(, 和 \) 。 传 统 的 egrep 不 支 持 元 字 符 { , 并 且 一 些 egrep 的 实 现 通 过 支 持 \{ 来 代 替 它 , 因 此 可 移 植 的 脚 本 应 当 避 免 在 egrep 中 使 用 { 模 式 , 应 当 使 用 [{] 来 匹 配 一 个 字 面 意 义 (literal) 的 { 。
GNU egrep 通 过 假 设 如 果 { 处 于 an invalid interval specification 的 起 始 , 就 不 是 一 个 特 殊 字 符 , 来 支 持 传 统 的 用 法 。 例 如 , shell 命 令 egrep ’{1’ 将 会 搜 索 这 个 两 字 符 的 字 符 串 {1 而 不 是 报 告 在 正 则 表 达 式 中 发 生 了 语 法 错 误 。 POSIX.2 允 许 这 个 行 为 , 将 其 视 为 一 个 扩 展 , 但 是 可 移 植 的 脚 本 应 当 避 免 使 用 它 。
环 境 变 量 ENVIRONMENT VARIABLES
Grep
的 行 为 受 下 列
环 境 变 量 影 响
。 一 个 locale LC_foo
是 通 过 按 下 面
的 顺 序 , LC_ALL,
LC_foo, LANG, 检 查
这 三 个 环 境 变
量 的 取 值 而 确
定 的 。 设 置 了
的 第 一 个 变 量
指 定 了 locale。 例 如
, 如 果 LC_ALL 没 有
设 置 , 但 是
LC_MESSAGES 设 置 为 pt_BR
, 那 么 巴 西 的
葡 萄 牙 语 (Brazilian Portuguese)
将 用 作 LC_MESSAGES locale
的 值 。 如 果 没
有 设 置 这 其 中
任 何 一 个 环 境
变 量 , 或 者 没
有 安 装 所 设 置
的 locale 目 录 , 或 者
如 果 grep 没 有 将
国 家 和 语 言 支
持 (national language support ( NLS ))
编 译 在 内 , 将
默 认 使 用 locale C。
GREP_OPTIONS 这 个 变 量
指 定 了 将 放 在
所 有 显 式 指 定
的 选 项 之 前 的
默 认 选 项 。 例
如 , 如 果 GREP_OPTIONS
是 ’--binary-files=without-match
--directories=skip’ 的 话 ,
grep 将 像 已 经 在
任 何 显 式 指 定
的 选 项 之 前 指
定 了 --binary-files=without-match
和 --directories=skip 选 项
那 样 来 运 作 。
选 项 以 空 白 (whitespace)
分 隔 。 一 个 反
斜 杠 (backslash) 使 得 下
一 个 字 符 转 义
(escape), 因 此 可 以
用 来 指 定 一 个
含 有 空 白 或 者
反 斜 杠 的 选 项
。
GREP_COLOR 指 定 用 来 高
亮 显 示 的 标 记
。
LC_ALL, LC_COLLATE, LANG 这 些
变 量 指 定 了 locale
LC_COLLATE , 决 定 了
解 释 类 似 [a-z] 的
范 围 表 达 式 时
的 序 列 顺 序 (collating
sequence) 。
LC_ALL, LC_CTYPE, LANG 这 些
选 项 指 定 了 locale
LC_CTYPE , 决 定 了 字
符 的 类 型 , 例
如 , 哪 些 字 符
是 空 白 (whitespace) 。
LC_ALL, LC_MESSAGES, LANG 这
些 选 项 指 定 了 locale
LC_MESSAGES , 决 定 了
grep 的 消 息 使 用
的 语 言 。 默 认
的 locale C 使 用 美 国
英 语 的 消 息 。
POSIXLY_CORRECT 如 果 设 置
了 的 话 , grep 将
像 POSIX.2 要 求 的
那 样 来 运 作 ;
否 则 , grep 将 像
其 他 GNU 程 序
一 样 来 运 作 。
POSIX.2 要 求 文 件
名 之 后 的 选 项
必 须 视 为 文 件
名 ; 默 认 情 况
下 , 这 些 选 项
被 交 换 到 操 作
数 列 表 的 前 面
, 被 当 作 选 项
来 处 理 。 同 时
, POSIX.2 要 求 不
可 识 别 的 选 项
在 诊 断 消 息 中
表 示 为 “illegal”,
但 是 既 然 它 们
没 有 真 正 触 犯
法 律 , 因 此 默
认 情 况 下 它 们
在 诊 断 (diagnose) 消 息
中 表 示 为
“invalid”。 POSIXLY_CORRECT
同 时 禁 止 了 下
面 描 述 的
_N_GNU_nonoption_argv_flags_。
_N_GNU_nonoption_argv_flags_
(这 里 N 是 grep’s 数 字 形 式 的 进 程 ID。 ) 如 果 这 个 环 境 变 量 的 值 的 第 i 个 字 符 是 1 , 那 么 不 将 grep 的 第 i 个 操 作 数 视 为 一 个 选 项 , 即 使 它 看 上 去 像 。 shell 可 以 将 这 个 变 量 设 置 在 它 运 行 的 每 个 命 令 的 环 境 中 , 指 定 哪 个 操 作 数 是 文 件 名 通 配 符 扩 展 的 结 果 , 因 此 不 应 当 被 视 为 选 项 。 这 个 行 为 只 有 在 使 用 GNU C 库 时 有 效 , 并 且 只 有 在 POSIXLY_CORRECT 没 有 设 置 的 时 候 。
诊 断 DIAGNOSTICS
一 般 地 , 如 果 找 到 了 选 择 的 行 , 退 出 时 状 态 值 为 0, 否 则 为 1。 但 是 如 果 发 生 错 误 , 退 出 时 状 态 值 是 2, 除 非 指 定 了 -q 或 --quiet 或 --silent 选 项 , 并 且 找 到 了 选 择 的 行 。
BUGS
bug 报 告 的 电 子 邮 件 地 址 是 bug-gnu-utils [AT] gnu.org。 一 定 要 在 “Subject:”中 带 有 “grep” 这 个 词 。 在 {n,m} 结 构 中 重 复 次 数 过 多 会 导 致 grep 使 用 大 量 内 存 。 另 外 , 一 些 过 分 晦 涩 的 正 则 表 达 式 需 要 指 数 级 的 时 间 和 空 间 , 可 能 会 导 致 grep 耗 尽 所 有 内 存 。 向 后 引 用 (backreferences) 非 常 慢 , 可 能 需 要 指 数 级 的 时 间 。
[中 文 版 维 护 人 ]
袁 乙 钧 <bbbush [AT] 163.com>
[中 文 版 最 新 更 新 ]
2003.11.03
《 中 国 linux论 坛 man手 册 页 翻 译 计 划 》 :
跋
本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh