婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Linux文本匹配命令grep與fgrep使用完全講解

Linux文本匹配命令grep與fgrep使用完全講解

熱門標簽:小語股票電銷機器人 杭州電銷機器人有效果嗎 襄陽地圖標注店 萊蕪移動外呼系統 金華呼叫中心外呼系統廠家 高德地圖標注在電腦上 柯城手機地圖如何做地圖標注 申請400電話流程好嗎 軟件電話機器人

grep

grep (global search regular expression(RE) and print out the line,全面搜索正則表達式并把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字符表示回其自身的字面意義,不再特殊。Linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。

grep的工作方式是這樣的,它在一個或多個文件中搜索字符串模板。如果模板包括空格,則必須被引用,模板后的所有字符串被看作文件名。搜索的結果被送到屏幕,不影響原文件內容。

grep可用于shell腳本,因為grep通過返回一個狀態值來說明搜索的狀態,如果模板搜索成功,則返回0,如果搜索不成功,則返回1,如果搜索的文件不存在,則返回2。我們利用這些返回值就可進行一些自動化的文本處理工作。

grep --help
匹配模式選擇:
 -E, --extended-regexp     擴展正則表達式egrep
 -F, --fixed-strings       一個換行符分隔的字符串的集合fgrep
 -G, --basic-regexp        基本正則
 -P, --perl-regexp         調用的perl正則
 -e, --regexp=PATTERN      后面根正則模式,默認無
 -f, --file=FILE           從文件中獲得匹配模式
 -i, --ignore-case         不區分大小寫
 -w, --word-regexp         匹配整個單詞
 -x, --line-regexp         匹配整行
 -z, --null-data           一個 0 字節的數據行,但不是空行

雜項:
 -s, --no-messages         不顯示錯誤信息
 -v, --invert-match        顯示不匹配的行
 -V, --version             顯示版本號
 --help                    顯示幫助信息
 --mmap                use memory-mapped input if possible

輸入控制:
 -m, --max-count=NUM       匹配的最大數
 -b, --byte-offset         打印匹配行前面打印該行所在的塊號碼。
 -n, --line-number         顯示的加上匹配所在的行號
 --line-buffered           刷新輸出每一行
 -H, --with-filename       當搜索多個文件時,顯示匹配文件名前綴
 -h, --no-filename         當搜索多個文件時,不顯示匹配文件名前綴
 --label=LABEL            print LABEL as filename for standard input
 -o, --only-matching       只顯示一行中匹配PATTERN 的部分
 -q, --quiet, --silent      不顯示任何東西
 --binary-files=TYPE   假定二進制文件的TYPE 類型;
                                      TYPE 可以是`binary', `text', 或`without-match'
 -a, --text                匹配二進制的東西
 -I                        不匹配二進制的東西
 -d, --directories=ACTION  目錄操作,讀取,遞歸,跳過
 -D, --devices=ACTION      設置對設備,FIFO,管道的操作,讀取,跳過
 -R, -r, --recursive       遞歸調用
 --include=PATTERN     只查找匹配FILE_PATTERN 的文件
 --exclude=PATTERN     跳過匹配FILE_PATTERN 的文件和目錄
 --exclude-from=FILE   跳過所有除FILE 以外的文件
 -L, --files-without-match 匹配多個文件時,顯示不匹配的文件名
 -l, --files-with-matches  匹配多個文件時,顯示匹配的文件名
 -c, --count               顯示匹配了多少次
 -Z, --null                在FILE 文件最后打印空字符

文件控制:
 -B, --before-context=NUM  打印匹配本身以及前面的幾個行由NUM控制
 -A, --after-context=NUM   打印匹配本身以及隨后的幾個行由NUM控制
 -C, --context=NUM         打印匹配本身以及隨后,前面的幾個行由NUM控制
 -NUM                      根-C的用法一樣的
 --color[=WHEN],
 --colour[=WHEN]       使用標志高亮匹配字串;
 
 -U, --binary               使用標志高亮匹配字串;
 -u, --unix-byte-offsets   當CR 字符不存在,報告字節偏移(MSDOS 模式)

例:
測試文件

復制代碼
代碼如下:

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false,aaa,bbbb,cccc,aaaaaa
DADddd:x:2:2:daemon:/sbin:/bin/false
mail:x:8:12:mail:/var/spool/mail:/bin/false
ftp:x:14:11:ftp:/home/ftp:/bin/false
nobody:$:99:99:nobody:/:/bin/false
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
http:x:33:33::/srv/http:/bin/false
dbus:x:81:81:System message bus:/:/bin/false
hal:x:82:82:HAL daemon:/:/bin/false
mysql:x:89:89::/var/lib/mysql:/bin/false
aaa:x:1001:1001::/home/aaa:/bin/bash
ba:x:1002:1002::/home/zhangy:/bin/bash
test:x:1003:1003::/home/test:/bin/bash
@zhangying:*:1004:1004::/home/test:/bin/bash
policykit:x:102:1005:Po

a,匹配含有root的行

復制代碼
代碼如下:

[root@krlcgcms01 test]# grep root test
root:x:0:0:root:/root:/bin/bash

b,匹配以root開頭或者以zhang開頭的行,注意反斜杠

復制代碼
代碼如下:

[root@krlcgcms01 test]# cat test |grep '^\(root\|zhang\)'
root:x:0:0:root:/root:/bin/bash
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash

c,匹配以root開頭或者以zhang開頭的行,注意反斜杠,根上面一個例子一樣,-e默認是省去的

[root@krlcgcms01 test]# cat test |grep -e '^\(root\|zhang\)' 
root:x:0:0:root:/root:/bin/bash 
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash 
d,匹配以zhang開頭,只含有字母

復制代碼
代碼如下:

[root@krlcgcms01 test]# echo 'zhangying' |grep '^zhang[a-z]*$'
zhangying

e,匹配以bin開頭的行,用的egrep,在這里可以換成-F,-G

復制代碼
代碼如下:

[root@krlcgcms01 test]# cat test |grep -E '^bin'
bin:x:1:1:bin:/bin:/bin/false,aaa,bbbb,cccc,aaaaaa

f,在匹配的行前面加上該行在文件中,或者輸出中所在的行號

復制代碼
代碼如下:

[root@krlcgcms01 test]# cat test|grep -n zhangy
7:zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
13:ba:x:1002:1002::/home/zhangy:/bin/bash
15:@zhangying:*:1004:1004::/home/test:/bin/bash

g,不匹配以bin開頭的行,并顯示行號

復制代碼
代碼如下:

[root@krlcgcms01 test]# cat test|grep -nv '^bin'
root:x:0:0:root:/root:/bin/bash
DADddd:x:2:2:daemon:/sbin:/bin/false
mail:x:8:12:mail:/var/spool/mail:/bin/false
ftp:x:14:11:ftp:/home/ftp:/bin/false
nobody:$:99:99:nobody:/:/bin/false
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
http:x:33:33::/srv/http:/bin/false
dbus:x:81:81:System message bus:/:/bin/false
hal:x:82:82:HAL daemon:/:/bin/false
mysql:x:89:89::/var/lib/mysql:/bin/false
aaa:x:1001:1001::/home/aaa:/bin/bash
ba:x:1002:1002::/home/zhangy:/bin/bash
test:x:1003:1003::/home/test:/bin/bash
@zhangying:*:1004:1004::/home/test:/bin/bash
policykit:x:102:1005:Po

h,顯示匹配的個數,不顯示內容

復制代碼
代碼如下:

[root@krlcgcms01 test]# cat test|grep -c zhang
3

i,匹配system,沒有加-i沒有匹配到東西。

復制代碼
代碼如下:

[root@krlcgcms01 test]# grep system test
[root@krlcgcms01 test]# grep -ni system test
9:dbus:x:81:81:System message bus:/:/bin/false

j,匹配zhan沒有匹配到東西,匹配zhangy能匹配到,因為在test文件中,有zhangy這個單詞

復制代碼
代碼如下:

[root@krlcgcms01 test]# cat test|grep -w zhan
[root@krlcgcms01 test]# cat test|grep -w zhangy
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
ba:x:1002:1002::/home/zhangy:/bin/bash

k,在這里-x后面東西,和輸出中的整行相同時,才會輸出

[root@krlcgcms01 test]# echo "aaaaaa" |grep -x aaa 
[root@krlcgcms01 test]# echo "aaaa" |grep -x aaaa 
aaaa 
l,最多只匹配一次,如果把-m 1去掉的話,會有三個

復制代碼
代碼如下:

[root@krlcgcms01 test]# cat test |grep -m 1 zhang
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash

m,匹配行的前面顯示塊號,這個塊號是干什么的,不知道,有誰知道可否告訴我一下

復制代碼
代碼如下:

[apacheuser@krlcgcms01 test]$ cat test |grep -b zha
241:zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
480:ba:x:1002:1002::/home/zhangy:/bin/bash
558:@zhangying:*:1004:1004::/home/test:/bin/bash

n,多文件匹配時,在匹配的行前面加上文件名

復制代碼
代碼如下:

[apacheuser@krlcgcms01 test]$ grep -H 'root' test test2 testbak
test:root:x:0:0:root:/root:/bin/bash
test2:root
testbak:root:x:0:0:root:/root:/bin/bash
 
o,多文件匹配時,在匹配的行前面不加上文件名

復制代碼
代碼如下:

[apacheuser@krlcgcms01 test]$ grep -h 'root' test test2 testbak
root:x:0:0:root:/root:/bin/bash
root
root:x:0:0:root:/root:/bin/bash

p,多文件匹配時,顯示匹配文件的文件名

復制代碼
代碼如下:

[apacheuser@krlcgcms01 test]$ grep -l 'root' test test2 testbak DAta
test
test2
testbak

q,沒有-o時,有一行匹配,這一行里面有3個root,加上-o后,這個3個root就出來了

復制代碼
代碼如下:

[apacheuser@krlcgcms01 test]$ grep 'root' test
root:x:0:0:root:/root:/bin/bash
[apacheuser@krlcgcms01 test]$ grep -o 'root' test
root
root
root

r,遞歸顯示匹配的內容,在test目錄下面建個mytest目錄,copy test目錄下面的test文件到mytest下面,能看到上面的結果

復制代碼
代碼如下:

[root@krlcgcms01 test]# grep test -R /tmp/test/mytest
/tmp/test/mytest/test:test:x:1003:1003::/home/test:/bin/bash
/tmp/test/mytest/test:@zhangying:*:1004:1004::/home/test:/bin/bash

s,顯示匹配root后面的3行

復制代碼
代碼如下:

[root@krlcgcms01 test]# cat test |grep -A 3 root
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false,aaa,bbbb,cccc,aaaaaa
daemon:x:2:2:daemon:/sbin:/bin/false
mail:x:8:12:mail:/var/spool/mail:/bin/false

fgrep
用法: fgrep [選項]... PATTERN [FILE]...
在每個 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。
例:

復制代碼
代碼如下:

[root@linux test]# cat abc.sh |fgrep a #匹配含有a的行

標簽:海東 哈密 優質穩定 昌都 臺州 九江 孝感 玉樹

巨人網絡通訊聲明:本文標題《Linux文本匹配命令grep與fgrep使用完全講解》,本文關鍵詞  Linux,文本,匹配,命令,grep,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux文本匹配命令grep與fgrep使用完全講解》相關的同類信息!
  • 本頁收集關于Linux文本匹配命令grep與fgrep使用完全講解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产欧美一区二区在线| 911精品产国品一二三产区| 国产免费观看久久| 国产三级欧美三级日产三级99| 欧美精品乱码久久久久久按摩| 欧美专区在线观看一区| 在线电影欧美成精品| 精品电影一区二区三区| 国产欧美va欧美不卡在线| 国产精品成人午夜| 午夜精品久久久久久久久久| 九九视频精品免费| 国产传媒一区在线| 欧美日本韩国一区二区三区视频 | 1000精品久久久久久久久| 一区二区三区精品在线观看| 亚洲在线观看免费| 国产乱码精品一品二品| 91福利视频在线| 久久精品一区二区| 午夜精品久久久久久久99樱桃| 久久精品二区亚洲w码| 国产91精品一区二区麻豆网站| 在线免费观看日韩欧美| 国产女同性恋一区二区| 亚洲婷婷国产精品电影人久久| 欧美喷水一区二区| 亚洲素人一区二区| 2017欧美狠狠色| 久久综合久久鬼色中文字| 欧美日韩久久一区| 免费成人小视频| 日韩精品一区二区三区视频在线观看| 日日夜夜一区二区| 777久久久精品| 国产美女精品人人做人人爽| 亚洲国产日韩a在线播放| 蜜臀久久99精品久久久画质超高清 | 欧美精品乱码久久久久久按摩| 国产精品欧美一区二区三区| 亚洲第一久久影院| 在线观看欧美精品| 一区二区三区加勒比av| 欧美性大战久久| 日本欧美一区二区在线观看| 欧美日本乱大交xxxxx| 视频一区二区中文字幕| 制服丝袜一区二区三区| 麻豆91免费观看| 欧美精品一区二区精品网| 日韩不卡免费视频| 久久婷婷久久一区二区三区| 欧美zozozo| 国产91精品在线观看| 中文av一区特黄| 欧美四级电影网| 九色|91porny| 亚洲青青青在线视频| 这里是久久伊人| 国产成人在线视频播放| 国产精品美女久久久久久久久久久 | 亚洲少妇中出一区| 在线视频一区二区三区| 激情五月播播久久久精品| 一区二区三区丝袜| 日韩精品中文字幕在线不卡尤物| 从欧美一区二区三区| 青青青伊人色综合久久| 国产精品久久午夜夜伦鲁鲁| 99久久精品费精品国产一区二区| 一区二区在线看| 精品捆绑美女sm三区| 欧美视频一区二区| 国产成人免费视频网站高清观看视频| ㊣最新国产の精品bt伙计久久| 日韩欧美色综合网站| 亚洲国产岛国毛片在线| 乱一区二区av| 亚洲人成亚洲人成在线观看图片| 亚洲精品一线二线三线| 日韩欧美高清在线| 欧美精品久久天天躁| 国产三区在线成人av| 欧美体内she精视频| 白白色 亚洲乱淫| av一本久道久久综合久久鬼色| 久久99精品国产91久久来源| 一区二区三区日韩精品视频| 亚洲精品视频在线观看网站| 亚洲九九爱视频| 亚洲国产精品久久不卡毛片| 国产精品私房写真福利视频| 亚洲精品中文字幕乱码三区| 日韩精品国产欧美| 五月天精品一区二区三区| 蜜桃久久av一区| 国产福利一区二区三区视频在线| 国产精品白丝jk黑袜喷水| 蜜臀a∨国产成人精品| 国产精品中文字幕欧美| 欧美性xxxxxx少妇| 中文字幕一区不卡| 亚洲精品国产精华液| 精品一区二区三区影院在线午夜| 99精品欧美一区二区蜜桃免费| 日韩一级二级三级精品视频| 日本一区免费视频| 亚洲柠檬福利资源导航| 精品在线免费观看| 欧美大胆人体bbbb| 日韩高清不卡一区| 成人毛片视频在线观看| 日韩一区二区在线观看视频 | 2020国产精品久久精品美国| xf在线a精品一区二区视频网站| 欧美激情在线一区二区| 精品一区二区在线免费观看| 94-欧美-setu| 亚洲国产精品国自产拍av| 色噜噜狠狠成人中文综合| 国产精品久久久久久户外露出 | 国产欧美日韩不卡免费| 美日韩黄色大片| 欧美一级精品在线| 男人的j进女人的j一区| 欧美日本精品一区二区三区| 水蜜桃久久夜色精品一区的特点 | xnxx国产精品| 久久成人精品无人区| 欧美大尺度电影在线| 高清在线观看日韩| 中文字幕高清一区| jizzjizzjizz欧美| 日本网站在线观看一区二区三区| 久久夜色精品国产噜噜av| 国产馆精品极品| 久久日一线二线三线suv| 粉嫩久久99精品久久久久久夜| 国产精品剧情在线亚洲| 91在线一区二区三区| 成人欧美一区二区三区黑人麻豆| 9色porny自拍视频一区二区| 自拍偷拍国产亚洲| 欧美日韩在线播放三区| 国产精品激情偷乱一区二区∴| av激情综合网| 免费成人深夜小野草| 久久久美女艺术照精彩视频福利播放| 风间由美一区二区三区在线观看 | 欧美三级一区二区| 成人永久看片免费视频天堂| 美腿丝袜在线亚洲一区| 国产肉丝袜一区二区| 精品久久人人做人人爱| 精品少妇一区二区三区日产乱码| 欧美猛男gaygay网站| 欧美嫩在线观看| 久久免费精品国产久精品久久久久| 亚洲大片在线观看| av在线不卡电影| 精品国产电影一区二区| 日韩午夜在线影院| www激情久久| 欧美天堂亚洲电影院在线播放| 亚洲欧美国产三级| 一区二区三区91| 狠狠色丁香九九婷婷综合五月 | 成人深夜视频在线观看| 国产xxx精品视频大全| 99久久国产免费看| 欧美探花视频资源| 青青草国产成人av片免费| 国产区在线观看成人精品| 日韩理论片网站| 亚洲va天堂va国产va久| 日本女人一区二区三区| 丝袜亚洲精品中文字幕一区| 日本美女一区二区三区视频| 亚洲综合在线免费观看| 国产福利精品一区| 欧美主播一区二区三区美女| 精品国产成人系列| 亚洲bt欧美bt精品777| 99re这里只有精品首页| 日韩视频在线观看一区二区| 欧美xxxx在线观看| 天天色综合成人网| 91九色02白丝porn| 欧美一级二级三级乱码| 亚洲欧美一区二区不卡| 五月激情六月综合| 91麻豆国产福利在线观看| 欧美tk—视频vk| 日本成人在线网站| 日本精品视频一区二区三区| 精品福利在线导航| 日本大胆欧美人术艺术动态| 91黄色免费观看| 亚洲国产视频网站| 欧美精选在线播放|