gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

Linux中的Grep命令(在文件中查找文本)

grep命令是(global regular expression print,全局正則表達式輸出)的縮寫,它是Linux中功能最強大且最常用的命令之一。

grep在一個或多個輸入文件中搜索與給定模式匹配的行,并將每條匹配行寫入標準輸出。 如果未指定文件,則grep將從標準輸入讀取,該輸入通常是另一個命令的輸出。

在本文中,我們將通過實際示例和最常見的GNU grep選項的詳細說明,向您展示如何使用grep命令。

grep命令語法

grep命令的語法如下:

grep [OPTIONS] PATTERN [FILE…]

方括號中的項目是可選的。

  • OPTIONS – 零個或多個選項。 Grep包含許多控制其行為的選項。
  • PATTERN – 搜索模式。
  • FILE – 零個或多個輸入文件名。

為了能夠搜索文件,運行命令的用戶必須對該文件具有讀取權限。

在文件中搜索字符串

grep命令最基本的用法是在文件中搜索字符串(文本)。

例如,要顯示/etc/passwd文件中包含字符串bash的所有行,請運行以下命令:

[linuxidc@localhost ~/www.linuxidc.com]$ grep bash /etc/passwd

輸出應如下所示:

Linux中的Grep命令(在文件中查找文本)

如果字符串包含空格,則需要將其用單引號或雙引號引起來:

[linuxidc@localhost ~/www.linuxidc.com]$grep “Gnome Display Manager” /etc/passwd

反轉匹配(排除)

要顯示與模式不匹配的行,請使用-v(或–invert-match)選項。

例如,要打印不包含字符串nologin的行,可以使用:

[linuxidc@localhost ~/www.linuxidc.com]$grep -v nologin /etc/passwd

Linux中的Grep命令(在文件中查找文本)

使用Grep過濾命令的輸出

可以使用grep通過管道過濾命令的輸出,并且只有與給定模式匹配的行才會打印在終端上。

例如,要找出哪些系統以用戶www-data的身份在系統上運行,可以使用以下ps命令:

[linuxidc@localhost ~/www.linuxidc.com]$ps -ef | grep www-data
linuxidc  3980  3865  0 22:26 pts/1    00:00:00 grep –color=auto www-data

Linux中的Grep命令(在文件中查找文本)

您也可以在命令中鏈接多個管道。 如您在上面的輸出中看到的,還有一行包含grep進程。 如果您不希望顯示該行,則將輸出傳遞到另一個grep實例,如下所示。

[linuxidc@localhost ~/www.linuxidc.com]$ps -ef | grep www-data | grep -v grep

遞歸搜索

要遞歸搜索模式,請使用-r選項(或–recursive)調用grep。 使用此選項時,grep將搜索指定目錄中的所有文件,并跳過遞歸遇到的符號鏈接。

要跟隨所有符號鏈接,請使用-R選項(或–dereference-recursive),而不是-r。

這是顯示如何在/etc目錄內的所有文件中搜索字符串linuxidc的示例:

[root@localhost /home/linuxidc/www.linuxidc.com]$grep -r linuxidc /etc

輸出將包含以文件的完整路徑為前綴的匹配行:

Linux中的Grep命令(在文件中查找文本)

如果使用-R選項,則grep將跟隨所有符號鏈接:

[root@ www.linuxidc.com]$grep -R linuxidc.com /etc

注意下面輸出的最后一行。 當用-r調用grep時,不會打印該行,因為Nginx啟用站點的目錄中的文件是指向可用站點目錄中的配置文件的符號鏈接。

/etc/hosts:127.0.0.1 node2.linuxidc.com

/etc/nginx/sites-available/linuxidc.com:    server_name linuxidc.com  www.linuxidc.com;
/etc/nginx/sites-enabled/linuxidc.com:    server_name linuxidc.com  www.linuxidc.com;

僅顯示文件名

要取消默認grep輸出并僅打印包含匹配模式的文件名,請使用-l(或–files-with-matches)選項。

以下命令在當前工作目錄中搜索所有以.conf結尾的文件,并僅顯示包含字符串linuxidc.com的文件的名稱:

$grep -l linuxidc.com *.conf

輸出將如下所示:

tmux.conf
haproxy.conf

-l選項通常與遞歸選項-R結合使用:

$grep -Rl linuxidc.com /tmp

不區分大小寫的搜索

默認情況下,grep區分大小寫。 這意味著將大寫和小寫字符視為不同的字符。

要在搜索時忽略大小寫,請使用-i選項(或–ignore-case)調用grep。

例如,當搜索不帶任何選項的Zebra時,以下命令將不顯示任何輸出,即有匹配的行:

$grep Zebra /usr/share/words

但是,如果使用-i選項執行不區分大小寫的搜索,則它將同時匹配大小寫字母:

$grep -i Zebra /usr/share/words

指定“ Zebra”將匹配該字符串的“ zebra”,“ ZEbrA”或任何其他大小寫字母組合。

zebra
zebra’s
zebras

搜索全詞

搜索字符串時,grep將顯示該字符串嵌入較大字符串中的所有行。

例如,如果您搜索“ gnu”,則將以較大的單詞(例如“ cygnus”或“ magnum”)嵌入“ gnu”的所有行都將匹配:

$grep gnu /usr/share/words

cygnus
gnu
interregnum
lgnu9d
lignum
magnum
magnuson
sphagnum
wingnut

要僅返回指定字符串是整個單詞(用非單詞字符括起來)的那些行,請使用-w(或–word-regexp)選項。

文字字符包括字母數字字符(a-z,A-Z和0-9)和下劃線(_)。 所有其他字符均視為非單詞字符。

如果您運行與上述相同的命令,包括-w選項,則grep命令將僅返回其中包含gnu作為單獨單詞的那些行。

$grep -w gnu /usr/share/words

gnu

顯示行號

-n(或–line-number)選項告訴grep顯示包含與模式匹配的字符串的行的行號。 使用此選項時,grep將匹配項打印到以行號為前綴的標準輸出。

例如,要顯示/etc/services文件中的包含字符串bash并帶有匹配行號的行,可以使用以下命令:

[linuxidc@localhost etc]$ grep -n 10000 /etc/services

下面的輸出顯示在行10423和10424上找到匹配項。

10445:ndmp            10000/tcp              # Network Data Management Protocol
10446:ndmp            10000/udp              # Network Data Management Protocol

Linux中的Grep命令(在文件中查找文本)

Count函數匹配

若要將匹配行數打印到標準輸出,請使用-c(或 –count)選項。

在下面的示例中,我們將計算以/usr/bin/zsh作為shell的帳戶數量。

$regular expression$grep -c ‘/usr/bin/zsh’ /etc/passwd

輸出

4

安靜模式

-q(或–quiet)告訴grep在安靜模式下運行,不要在標準輸出上顯示任何內容。 如果找到匹配項,則該命令以狀態0退出。這在要檢查文件是否包含字符串并根據結果執行某些操作的shell腳本中使用grep時非常有用。

這是一個在安靜模式下使用grep作為if語句中的測試命令的示例:

if grep -q PATTERN filename
then
    echo pattern found
else
    echo pattern not found
fi

Basic正則表達式

GNU Grep具有三個正則表達式功能集,Basic、 Extended 和 perl 兼容

默認情況下,grep將模式解釋為基本的正則表達式,其中除元字符之外的所有字符實際上都是與自己匹配的正則表達式。

以下是最常用的元字符的列表:

使用^(插入符號)符號可在行首匹配表達式。 在下面的示例中,僅當字符串kangaroo出現在行的開頭時才匹配。

$grep “^kangaroo” file.txt

使用$(美元)符號來匹配行尾的表達式。 在下面的示例中,僅當字符串kangaroo出現在行的最后時才匹配。

$grep “kangaroo$” file.txt

使用.(點)符號以匹配任何單個字符。 例如,要匹配以kan開頭,然后有兩個字符并以字符串roo結尾的任何內容,可以使用以下模式:

$grep “kan..roo” file.txt

使用[](括號)來匹配括號中包含的任何單個字符。 例如,找到包含accept或“ accent”的行,可以使用以下模式:

$grep “acce[np]t” file.txt

使用[^]來匹配不在括號內的任何單個字符。下面的模式將匹配任何包含co(any_letter_except_l)a的字符串組合,如coca、cobalt等,但不匹配包含cola的行,

$grep “co[^l]a” file.txt

要轉義下一個字符的特殊含義,請使用(反斜杠)符號。

Extended正則表達式

要將模式解釋為擴展的正則表達式,請使用-E(或–extended-regexp)選項。 擴展的正則表達式包括所有基本元字符,以及用于創建更復雜和更強大的搜索模式的其他元字符。 以下是一些示例:

匹配并提取給定文件中的所有電子郵件地址:

$grep -E -o “b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,6}b” file.txt

匹配并提取給定文件中的所有有效IP地址:

$grep -E -o ‘(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)’ file.txt

-o選項僅用于打印匹配的字符串。

搜索多個字符串(模式)

可以使用OR運算符|將兩個或多個搜索模式結合在一起。

默認情況下,grep將模式解釋為基本正則表達式,其中的元字符(例如|) 失去其特殊含義,必須使用反斜杠版本。

在以下示例中,我們正在Nginx日志錯誤文件中搜索所有出現的致命,錯誤和嚴重的單詞:

$grep ‘fatal|error|critical’ /var/log/nginx/error.log

如果使用擴展正則表達式選項-E,則不應轉義運算符|,如下所示:

$grep -E ‘fatal|error|critical’ /var/log/nginx/error.log

在匹配之前打印行

要在匹配行之前打印特定數量的行,請使用-B(或 –before-context)選項。

例如,要在匹配行之前顯示5行前奏上下文,可以使用以下命令:

$grep -B 5 root /etc/passwd

Linux中的Grep命令(在文件中查找文本)

匹配后打印行

若要在匹配行之后打印特定數量的行,請使用-A(或 –after-context)選項。

例如,要在匹配行之后顯示尾隨上下文的五行,可以使用以下命令:

$grep -A 5 root /etc/passwd

Linux中的Grep命令(在文件中查找文本)

總結

grep命令允許您在文件內部搜索模式。 如果找到匹配項,則grep打印包含指定模式的行。

在Grep用戶手冊頁上,還有更多有關Grep的知識。

如果您有任何問題或反饋,請隨時發表評論。

贊(1)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
欧美精品aaaa| 精品少妇人妻av免费久久洗澡| 欧美日韩性生活片| 黄色成人在线免费观看| 欧美激情第四页| 国产精品h视频| 中文字幕第50页| 国产高清精品软男同| 无码毛片aaa在线| 国产日产欧美一区二区| 麻豆传媒网站在线观看| 亚洲成人动漫在线| 亚洲理论电影在线观看| 91午夜在线观看| av免费观看大全| 北条麻妃视频在线| 91日韩精品视频| 糖心vlog在线免费观看| 日韩a级黄色片| 亚洲精品无码久久久久久| 日韩中文字幕免费在线| 色一情一区二区三区| 国产成人精品免费看在线播放| 色撸撸在线观看| 欧美黄色免费网址| 国产麻花豆剧传媒精品mv在线| 欧美精品性生活| 国产高清精品软男同| 99色这里只有精品| 久久久久免费精品| 在线播放 亚洲| 国产aaa一级片| 中日韩av在线播放| 99在线精品免费视频| www.欧美日本| 日韩a级黄色片| 少妇网站在线观看| 2019日韩中文字幕mv| 亚洲 激情 在线| 国产 日韩 亚洲 欧美| 久久综合伊人77777麻豆最新章节| 午夜激情av在线| 国产视频一视频二| 国产成年人在线观看| 欧美在线观看视频网站| 日产精品久久久久久久蜜臀| 伊人国产在线视频| 亚洲午夜无码av毛片久久| 特级黄色录像片| 亚洲免费看av| aa免费在线观看| 国产高清av在线播放| 色姑娘综合天天| 九九热免费在线观看| 国产一级不卡毛片| 成熟丰满熟妇高潮xxxxx视频| 欧美一级小视频| 国产精品自拍视频在线| 男人揉女人奶房视频60分| 国产又粗又长又爽视频| 九九久久久久久| 黄色免费网址大全| 精品久久久久久久无码| av免费中文字幕| 国产成人亚洲精品无码h在线| 免费看欧美黑人毛片| 成年在线观看视频| 日韩黄色片在线| 国产视频在线观看网站| 高清无码视频直接看| 992tv快乐视频| 国产一二三四五| 国产精品无码免费专区午夜| 欧美性受xxxx黑人猛交88| 免费看av软件| 欧美乱大交xxxxx潮喷l头像| 99久久国产综合精品五月天喷水| 一本久道高清无码视频| 你真棒插曲来救救我在线观看| 欧美日韩亚洲国产成人| 国产一区二区三区播放| 性高湖久久久久久久久aaaaa| 国产freexxxx性播放麻豆| 欧美日韩第二页| 亚洲一级免费在线观看| 久久精品一二三四| 国产亚洲精品久久久久久久| 日韩少妇内射免费播放| 999精彩视频| 日本黄色播放器| 久操网在线观看| 日日躁夜夜躁aaaabbbb| 久久香蕉视频网站| 欧美v在线观看| 日韩成人av免费| 人妻夜夜添夜夜无码av| 性生活免费在线观看| 久操手机在线视频| 欧美午夜aaaaaa免费视频| 青草全福视在线| 91蝌蚪视频在线观看| 成人免费在线视频播放| www.欧美日本| 日韩精品在线视频免费观看| 久久婷五月综合| 可以在线看的av网站| 亚洲色图欧美自拍| 日韩手机在线观看视频| 成人午夜视频免费观看| 国产欧美一区二| 国产男女在线观看| av 日韩 人妻 黑人 综合 无码| 午夜欧美福利视频| 精品无码一区二区三区在线| 日本在线观看视频一区| 黄色高清无遮挡| 亚洲美免无码中文字幕在线 | 欧美成人xxxxx| 日韩人妻精品一区二区三区| 免费男同深夜夜行网站| 婷婷五月综合缴情在线视频| 日本三级福利片| 九九热精品国产| www.久久91| www亚洲成人| 黄色片久久久久| 国产精品无码专区av在线播放| 麻豆tv在线播放| 一卡二卡三卡视频| 男的插女的下面视频| 欧美中文字幕在线观看视频 | 亚洲怡红院在线| 亚洲怡红院在线| 免费黄频在线观看| 熟女熟妇伦久久影院毛片一区二区| 亚洲视频在线a| 别急慢慢来1978如如2| 久久无码高潮喷水| 老司机午夜av| 高清一区在线观看| 想看黄色一级片| 色爽爽爽爽爽爽爽爽| 91视频成人免费| 欧美高清中文字幕| 黄色一级在线视频| 熟女人妇 成熟妇女系列视频| 国产v亚洲v天堂无码久久久| 白嫩少妇丰满一区二区| 亚洲77777| 亚洲热在线视频| 国产精品久久久久9999爆乳| 久久国产亚洲精品无码| 黄色一级二级三级| 亚洲第一精品区| 东北少妇不带套对白| 久久久久久香蕉| 亚洲一二三av| 九一国产精品视频| 中文字幕亚洲欧洲| 99er在线视频| www.xxx亚洲| 国产系列第一页| 毛片在线视频播放| www.国产福利| 男人用嘴添女人下身免费视频| 色悠悠久久综合网| 欧美中日韩在线| www.久久91| 欧美性久久久久| 大陆极品少妇内射aaaaaa| 99蜜桃臀久久久欧美精品网站| 日本免费色视频| 黄色免费视频大全| 大片在线观看网站免费收看| 成人中文字幕av| 你真棒插曲来救救我在线观看| 波多结衣在线观看| 日韩av三级在线| 狠狠干视频网站| 亚洲视频在线不卡| 9久久婷婷国产综合精品性色| 青青青青在线视频| 艳母动漫在线免费观看| 亚洲三级视频网站| 久久久噜噜噜www成人网| 国产1区2区3区中文字幕| 第一区免费在线观看| 成人在线观看黄| 国产精品无码av在线播放| 国产小视频免费| 中文字幕第50页| 日本免费在线视频观看| 狠狠操狠狠干视频| 激情视频免费网站| 日本久久精品一区二区| 日韩免费毛片视频| 91av俱乐部| 三级4级全黄60分钟| 东京热加勒比无码少妇| 国产成人a亚洲精v品无码|