【Linux】一步一步学Linux——fgrep命令(了解)(51)
00. 目錄
文章目錄
- 00. 目錄
- 01. 命令概述
- 02. 命令格式
- 03. 常用選項(xiàng)
- 04. 參考示例
- 05. 附錄
01. 命令概述
本指令相當(dāng)于執(zhí)行g(shù)rep指令加上參數(shù)"-F",Linux fgrep命令用于查找文件里符合條件的字符串。
fgrep命令是用來搜索 file參數(shù)指定的輸入文件(缺省為標(biāo)準(zhǔn)輸入)中的匹配模式的行。fgrep 命令特別搜索 Pattern 參數(shù),它們是固定的字符串。如果在 File 參數(shù)中指定一個(gè)以上的文件 fgrep 命令將顯示包含匹配行的文件。
fgrep 命令于 grep 和 egrep 命令不同,因?yàn)樗阉髯址皇撬阉髌ヅ浔磉_(dá)式的模式。fgrep 命令使用快速的壓縮算法。$, *, [, |, (, )和\等字符串被 fgrep 命令按字面意思解釋。這些字符并不解釋為正則表達(dá)式,但它們?cè)?grep 和 egrep 命令中解釋為正則表達(dá)式。因?yàn)檫@些字符對(duì)于 shell 有特定的含義,完整的字符串應(yīng)該加上單引號(hào)‘ ... ’。. 如果沒有指定文件, fgrep 命令假定標(biāo)準(zhǔn)輸入。一般,找到的每行都復(fù)制到標(biāo)準(zhǔn)輸出中去。如果不止一個(gè)輸入文件,則在找到的每行前打印文件名。
02. 命令格式
用法: fgrep [選項(xiàng)]… PATTERN [FILE]…
03. 常用選項(xiàng)
在每個(gè) FILE 或是標(biāo)準(zhǔn)輸入中查找 PATTERN。 PATTERN 是一組由斷行符分隔的定長(zhǎng)字符串。 例如: fgrep -i 'hello world' menu.h main.c正則表達(dá)式選擇與解釋:-e, --regexp=PATTERN 用 PATTERN 來進(jìn)行匹配操作-f, --file=FILE 從 FILE 中取得 PATTERN-i, --ignore-case 忽略大小寫-w, --word-regexp 強(qiáng)制 PATTERN 僅完全匹配字詞-x, --line-regexp 強(qiáng)制 PATTERN 僅完全匹配一行-z, --null-data 一個(gè) 0 字節(jié)的數(shù)據(jù)行,但不是空行雜項(xiàng):-s, --no-messages 不顯示錯(cuò)誤信息-v, --invert-match 選中不匹配的行-V, --version 顯示版本信息并退出--help 顯示此幫助并退出--mmap 忽略向后兼容性O(shè)utput control:-m, --max-count=NUM 匹配的最大數(shù)-b, --byte-offset 打印匹配行前面打印該行所在的塊號(hào)碼-n, --line-number 顯示的加上匹配所在的行號(hào)--line-buffered 刷新輸出每一行-H, --with-filename 當(dāng)搜索多個(gè)文件時(shí),顯示匹配文件名前綴-h, --no-filename 當(dāng)搜索多個(gè)文件時(shí),不顯示匹配文件名前綴--label=LABEL use LABEL as the standard input file name prefix-o, --only-matching 只顯示一行中匹配PATTERN 的部分-q, --quiet, --silent 不顯示所有輸出--binary-files=TYPE 假定二進(jìn)制文件的TYPE 類型;TYPE 可以是`binary', `text', 或`without-match'-a, --text 等同于 --binary-files=text-I 等同于 --binary-files=without-match-d, --directories=ACTION 操作目錄的方式;ACTION 可以是`read', `recurse',或`skip'-D, --devices=ACTION 操作設(shè)備、先入先出隊(duì)列、套接字的方式;ACTION 可以是`read'或`skip'-R, -r, --recursive 等同于 --directories=recurse--include=FILE_PATTERN 只查找匹配FILE_PATTERN 的文件--exclude=FILE_PATTERN 跳過匹配FILE_PATTERN 的文件和目錄--exclude-from=FILE 跳過所有除FILE 以外的文件--exclude-dir=PATTERN 跳過所有匹配PATTERN 的目錄。-L, --files-without-match 只打印不匹配FILEs 的文件名-l, --files-with-matches 只打印匹配FILES 的文件名-c, --count 只打印每個(gè)FILE 中的匹配行數(shù)目-T, --initial-tab 行首tabs 分隔(如有必要)-Z, --null 在FILE 文件最后打印空字符文件控制:-B, --before-context=NUM 打印以文本起始的NUM 行-A, --after-context=NUM 打印以文本結(jié)尾的NUM 行-C, --context=NUM 打印輸出文本NUM 行-NUM 等同于 --context=NUM--color[=WHEN],--colour[=WHEN] 使用標(biāo)志高亮匹配字串;WHEN 可以是`always', `never'或`auto'-U, --binary 不要清除行尾的CR 字符(MSDOS 模式)-u, --unix-byte-offsets 當(dāng)CR 字符不存在,報(bào)告字節(jié)偏移(MSDOS 模式)‘fgrep’可以使用 ‘grep -F’代替。 不帶 FILE 參數(shù),或是 FILE 為 -,將讀取標(biāo)準(zhǔn)輸入。如果少于兩個(gè) FILE 參數(shù) 就要默認(rèn)使用 -h 參數(shù)。如果選中任意一行,那退出狀態(tài)為 0,否則為 1; 如果有錯(cuò)誤產(chǎn)生,且未指定 -q 參數(shù),那退出狀態(tài)為 2。04. 參考示例
4.1 從文件中所有匹配的字符串
[deng@localhost ~]$ fgrep main test.c int main() [deng@localhost ~]$4.2 顯示文件中包含左括號(hào)行的數(shù)目
[deng@localhost ~]$ fgrep -c '{' test.c 5 [deng@localhost ~]$4.3 顯示文件中包含右括號(hào)行的數(shù)目
[deng@localhost ~]$ fgrep -c '}' test.c 5 [deng@localhost ~]$4.4 將包含括號(hào)的行按照他們?cè)谖募械奈恢庙樞蝻@示出來,使用以下命令
[deng@localhost ~]$ egrep {\|} test.c {unsigned char md[16] = { 0 };{} } {char result[33] = { 0 }; } [deng@localhost ~]$4.5 只打印匹配FILES 的文件名
[deng@localhost ~]$ fgrep -l main test.c test.c [deng@localhost ~]$05. 附錄
參考:【Linux】一步一步學(xué)Linux系列教程匯總
總結(jié)
以上是生活随笔為你收集整理的【Linux】一步一步学Linux——fgrep命令(了解)(51)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【IT资讯】全新编程语言V发布
- 下一篇: 【Linux】一步一步学Linux——w