【Linux】一步一步学Linux——fgrep命令(了解)(51)
00. 目錄
文章目錄
- 00. 目錄
- 01. 命令概述
- 02. 命令格式
- 03. 常用選項
- 04. 參考示例
- 05. 附錄
01. 命令概述
本指令相當于執行grep指令加上參數"-F",Linux fgrep命令用于查找文件里符合條件的字符串。
fgrep命令是用來搜索 file參數指定的輸入文件(缺省為標準輸入)中的匹配模式的行。fgrep 命令特別搜索 Pattern 參數,它們是固定的字符串。如果在 File 參數中指定一個以上的文件 fgrep 命令將顯示包含匹配行的文件。
fgrep 命令于 grep 和 egrep 命令不同,因為它搜索字符串而不是搜索匹配表達式的模式。fgrep 命令使用快速的壓縮算法。$, *, [, |, (, )和\等字符串被 fgrep 命令按字面意思解釋。這些字符并不解釋為正則表達式,但它們在 grep 和 egrep 命令中解釋為正則表達式。因為這些字符對于 shell 有特定的含義,完整的字符串應該加上單引號‘ ... ’。. 如果沒有指定文件, fgrep 命令假定標準輸入。一般,找到的每行都復制到標準輸出中去。如果不止一個輸入文件,則在找到的每行前打印文件名。
02. 命令格式
用法: fgrep [選項]… PATTERN [FILE]…
03. 常用選項
在每個 FILE 或是標準輸入中查找 PATTERN。 PATTERN 是一組由斷行符分隔的定長字符串。 例如: fgrep -i 'hello world' menu.h main.c正則表達式選擇與解釋:-e, --regexp=PATTERN 用 PATTERN 來進行匹配操作-f, --file=FILE 從 FILE 中取得 PATTERN-i, --ignore-case 忽略大小寫-w, --word-regexp 強制 PATTERN 僅完全匹配字詞-x, --line-regexp 強制 PATTERN 僅完全匹配一行-z, --null-data 一個 0 字節的數據行,但不是空行雜項:-s, --no-messages 不顯示錯誤信息-v, --invert-match 選中不匹配的行-V, --version 顯示版本信息并退出--help 顯示此幫助并退出--mmap 忽略向后兼容性Output control:-m, --max-count=NUM 匹配的最大數-b, --byte-offset 打印匹配行前面打印該行所在的塊號碼-n, --line-number 顯示的加上匹配所在的行號--line-buffered 刷新輸出每一行-H, --with-filename 當搜索多個文件時,顯示匹配文件名前綴-h, --no-filename 當搜索多個文件時,不顯示匹配文件名前綴--label=LABEL use LABEL as the standard input file name prefix-o, --only-matching 只顯示一行中匹配PATTERN 的部分-q, --quiet, --silent 不顯示所有輸出--binary-files=TYPE 假定二進制文件的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 操作設備、先入先出隊列、套接字的方式;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 只打印每個FILE 中的匹配行數目-T, --initial-tab 行首tabs 分隔(如有必要)-Z, --null 在FILE 文件最后打印空字符文件控制:-B, --before-context=NUM 打印以文本起始的NUM 行-A, --after-context=NUM 打印以文本結尾的NUM 行-C, --context=NUM 打印輸出文本NUM 行-NUM 等同于 --context=NUM--color[=WHEN],--colour[=WHEN] 使用標志高亮匹配字串;WHEN 可以是`always', `never'或`auto'-U, --binary 不要清除行尾的CR 字符(MSDOS 模式)-u, --unix-byte-offsets 當CR 字符不存在,報告字節偏移(MSDOS 模式)‘fgrep’可以使用 ‘grep -F’代替。 不帶 FILE 參數,或是 FILE 為 -,將讀取標準輸入。如果少于兩個 FILE 參數 就要默認使用 -h 參數。如果選中任意一行,那退出狀態為 0,否則為 1; 如果有錯誤產生,且未指定 -q 參數,那退出狀態為 2。04. 參考示例
4.1 從文件中所有匹配的字符串
[deng@localhost ~]$ fgrep main test.c int main() [deng@localhost ~]$4.2 顯示文件中包含左括號行的數目
[deng@localhost ~]$ fgrep -c '{' test.c 5 [deng@localhost ~]$4.3 顯示文件中包含右括號行的數目
[deng@localhost ~]$ fgrep -c '}' test.c 5 [deng@localhost ~]$4.4 將包含括號的行按照他們在文件中的位置順序顯示出來,使用以下命令
[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】一步一步學Linux系列教程匯總
總結
以上是生活随笔為你收集整理的【Linux】一步一步学Linux——fgrep命令(了解)(51)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【IT资讯】全新编程语言V发布
- 下一篇: 【Linux】一步一步学Linux——w