欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux中的grep?-v、-e、-E用法小結(jié)

 更新時(shí)間:2022年11月03日 09:57:26   作者:慕城南風(fēng)  
grep是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來,這篇文章主要介紹了Linux之grep?-v、-e、-E用法總結(jié),需要的朋友可以參考下

簡介

grep (global search regular expression(RE) and print out the line,全面搜索正則表達(dá)式并把行打印出來)是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來。

在Linux的grep命令中如何使用OR,AND,NOT操作符呢?

其實(shí),在grep命令中,有OR和NOT操作符的等價(jià)選項(xiàng),但是并沒有g(shù)rep AND這種操作符。不過呢,可以使用patterns來模擬AND操作的。下面會(huì)舉一些例子來說明在Linux的grep命令中如何使用OR,AND,NOT。

在下面的例子中,會(huì)用到這個(gè)employee.txt文件,如下:

$ cat employee.txt  
100  Thomas  Manager    Sales       $5,000  
200  Jason   Developer  Technology  $5,500  
300  Raj     Sysadmin   Technology  $7,000  
400  Nisha   Manager    Marketing   $9,500  
500  Randy   Manager    Sales       $6,000  

(一)Grep OR 操作符

以下四種方法均能實(shí)現(xiàn)grep OR的操作。個(gè)人推薦方法3.

1.使用 \|

如果不使用grep命令的任何選項(xiàng),可以通過使用 '\|' 來分割多個(gè)pattern,以此實(shí)現(xiàn)OR的操作。

grep 'pattern1\|pattern2' filename  

例子如下:

$ grep 'Tech\|Sales' employee.txt  
100  Thomas  Manager    Sales       $5,000  
200  Jason   Developer  Technology  $5,500  
300  Raj     Sysadmin   Technology  $7,000  
500  Randy   Manager    Sales       $6,000  

2.使用選項(xiàng) -E

grep -E 選項(xiàng)可以用來擴(kuò)展選項(xiàng)為正則表達(dá)式。 如果使用了grep 命令的選項(xiàng)-E,則應(yīng)該使用 | 來分割多個(gè)pattern,以此實(shí)現(xiàn)OR操作。

grep?-E?'pattern1|pattern2'?filename??

例子如下:

$ grep -E 'Tech|Sales' employee.txt  
100  Thomas  Manager    Sales       $5,000  
200  Jason   Developer  Technology  $5,500  
300  Raj     Sysadmin   Technology  $7,000  
500  Randy   Manager    Sales       $6,000  

3.使用 egrep

egrep 命令等同于‘grep -E’。因此,使用egrep (不帶任何選項(xiàng))命令,以此根據(jù)分割的多個(gè)Pattern來實(shí)現(xiàn)OR操作.

egrep 'pattern1|pattern2' filename  

例子如下:

$ egrep 'Tech|Sales' employee.txt  
100  Thomas  Manager    Sales       $5,000  
200  Jason   Developer  Technology  $5,500  
300  Raj     Sysadmin   Technology  $7,000  
500  Randy   Manager    Sales       $6,000  

4.使用選項(xiàng) -e

使用grep -e 選項(xiàng),只能傳遞一個(gè)參數(shù)。在單條命令中使用多個(gè) -e 選項(xiàng),得到多個(gè)pattern,以此實(shí)現(xiàn)OR操作。

grep -e pattern1 -e pattern2 filename  

例子如下:

$ grep -e Tech -e Sales employee.txt  
100  Thomas  Manager    Sales       $5,000  
200  Jason   Developer  Technology  $5,500  
300  Raj     Sysadmin   Technology  $7,000  
500  Randy   Manager    Sales       $6,000  

(二)Grep AND 操作

1.使用 -E 'pattern1.*pattern2'

grep命令本身不提供AND功能。但是,使用 -E 選項(xiàng)可以實(shí)現(xiàn)AND操作。

grep -E 'pattern1.*pattern2' filename  
grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename  

第一個(gè)例子如下:(其中兩個(gè)pattern的順序是指定的)

$ grep -E 'Dev.*Tech' employee.txt  
200  Jason   Developer  Technology  $5,500  

第二個(gè)例子:(兩個(gè)pattern的順序不是固定的,可以是亂序的)

$ grep -E 'Manager.*Sales|Sales.*Manager' employee.txt  

2.使用多個(gè)grep命令

可以使用多個(gè) grep 命令 ,由管道符分割,以此來實(shí)現(xiàn) AND 語義。

grep -E 'pattern1' filename | grep -E 'pattern2'  

例子如下:

$ grep Manager employee.txt | grep Sales  
100  Thomas  Manager    Sales       $5,000  
500  Randy   Manager    Sales       $6,000  

(三)Grep NOT操作

1.使用選項(xiàng) grep -v

使用 grep -v 可以實(shí)現(xiàn) NOT 操作。 -v 選項(xiàng)用來實(shí)現(xiàn)反選匹配的( invert match)。如,可匹配得到除下指定pattern外的所有l(wèi)ines。

grep -v 'pattern1' filename  

例子如下:

$ grep -v Sales employee.txt  
200  Jason   Developer  Technology  $5,500  
300  Raj     Sysadmin   Technology  $7,000  
400  Nisha   Manager    Marketing   $9,500  

當(dāng)然,可以將NOT操作與其他操作聯(lián)合起來,以此實(shí)現(xiàn)更強(qiáng)大的功能 組合。

如,這個(gè)例子將得到:‘Manager或者Developer,但是不是Sales’的結(jié)果:

$ egrep 'Manager|Developer' employee.txt | grep -v Sales  
200  Jason   Developer  Technology  $5,500  
400  Nisha   Manager    Marketing   $9,500

到此這篇關(guān)于Linux之grep -v、-e、-E用法總結(jié)的文章就介紹到這了,更多相關(guān)linux grep -v命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Shell腳本實(shí)現(xiàn)監(jiān)視指定進(jìn)程的運(yùn)行狀態(tài)

    Shell腳本實(shí)現(xiàn)監(jiān)視指定進(jìn)程的運(yùn)行狀態(tài)

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)監(jiān)視指定進(jìn)程的運(yùn)行狀態(tài),本文直接給出腳本代碼,需要的朋友可以參考下
    2015-07-07
  • Shell腳本中獲取進(jìn)程ID的方法

    Shell腳本中獲取進(jìn)程ID的方法

    這篇文章主要介紹了Shell腳本中獲取進(jìn)程ID的方法,我想要知道運(yùn)行中腳本子shell的進(jìn)程id,我該如何在shell腳本中得到PID,閱讀本文即可找到你想要答案,需要的朋友可以參考下
    2015-03-03
  • Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點(diǎn)

    Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點(diǎn)

    這篇文章主要介紹了Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點(diǎn),需要的朋友可以參考下
    2015-10-10
  • Linux進(jìn)程管理方法介紹

    Linux進(jìn)程管理方法介紹

    這篇文章介紹了Linux進(jìn)程管理的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • ping發(fā)現(xiàn)掉包報(bào)警的shell代碼

    ping發(fā)現(xiàn)掉包報(bào)警的shell代碼

    一般用來判斷服務(wù)器是否穩(wěn)定,加入crontab中讓其10分鐘跑一次,需要的朋友可以參考下
    2013-01-01
  • Shell常用服務(wù)器日志分析命令總結(jié)

    Shell常用服務(wù)器日志分析命令總結(jié)

    有時(shí)我們需要分析分析自己網(wǎng)站服務(wù)器日志,看看網(wǎng)站的訪問量??纯从袥]有黑闊搞破壞!于是收集,整理一些服務(wù)器日志分析命令,大家可以試試
    2022-06-06
  • Bash腳本中括號(hào)和反引號(hào)的使用

    Bash腳本中括號(hào)和反引號(hào)的使用

    我們經(jīng)常需要引用變量或者命令的執(zhí)行結(jié)果來作為文件的名字或者日志的輸出,本文主要介紹了Bash腳本中括號(hào)和反引號(hào)的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Shell腳本注釋的實(shí)現(xiàn)

    Shell腳本注釋的實(shí)現(xiàn)

    本文主要介紹了Shell腳本注釋的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 用git打更新包的辦法分享

    用git打更新包的辦法分享

    Git是一款免費(fèi)、開源的分布式版本控制系統(tǒng),想信很多人也用過或者接觸過,這篇文章為大家介紹下如何利用git來打更新包,有需要的可以參考借鑒。
    2016-08-08
  • 一張圖讓你學(xué)會(huì)Vim編輯器快捷鍵

    一張圖讓你學(xué)會(huì)Vim編輯器快捷鍵

    今天小編就為大家分享一篇一張圖讓你學(xué)會(huì)Vim編輯器快捷鍵,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評(píng)論