色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

grep命令常用的選項詳解

阿銘linux ? 來源:阿銘linux ? 作者:阿銘 ? 2022-11-30 11:43 ? 次閱讀

阿銘在前面多次用到了grep命令,可見它的重要性。該命令的格式為:grep [-cinvABC] 'word' filename,其常用的選項如下所示。

-c:表示打印符合要求的行數。

-i:表示忽略大小寫。

-n:表示輸出符合要求的行及其行號。

-v:表示打印不符合要求的行。

-A:后面跟一個數字(有無空格都可以),例如-A2表示打印符合要求的行以及下面兩行。

-B:后面跟一個數字,例如-B2表示打印符合要求的行以及上面兩行。

-C:后面跟一個數字,例如-C2表示打印符合要求的行以及上下各兩行。

首先看看-A、-B和-C這3個選項的用法。

-A2 會把包含halt的行以及這行下面的兩行都打印出來:

# grep -A2 'halt' /etc/passwd
halt7halt:/sbin:/sbin/halt
mail8mail:/var/spool/mail:/sbin/nologin
operator11operator:/root:/sbin/nologin
說明:在Rocky8系統中,grep默認幫我們把匹配到的字符串標注了紅色,這點還是挺貼心的。其實大家可以用which命令看一下grep,你會發現grep其實是grep --color=auto,這個選項就是顏色顯示。

-B2 會把包含halt的行以及這行上面的兩行都打印出來:

# grep -B2 'halt' /etc/passwd
sync5sync:/sbin:/bin/sync
shutdown6shutdown:/sbin:/sbin/shutdown
halt7halt:/sbin:/sbin/halt

-C2 會把包含halt的行以及這行上下各兩行都打印出來:

# grep -C2 'halt' /etc/passwd
sync5sync:/sbin:/bin/sync
shutdown6shutdown:/sbin:/sbin/shutdown
halt7halt:/sbin:/sbin/halt
mail8mail:/var/spool/mail:/sbin/nologin
operator11operator:/root:/sbin/nologin

下面阿銘舉幾個典型實例來幫你更深刻地理解grep。

12.1.1過濾出帶有某個關鍵詞的行,并輸出行號

示例命令如下:

# grep -n 'root' /etc/passwd
1x0/root:/bin/bash
10x0/root:/sbin/nologin

說明前面的數字顯示為綠色,表示行號。

12.1.2過濾出不帶有某個關鍵詞的行,并輸出行號

示例命令如下:

# grep -nv 'nologin' /etc/passwd
1x0/root:/bin/bash
6x0/sbin:/bin/sync
7x0/sbin:/sbin/shutdown
8x0/sbin:/sbin/halt
45x1000/home/aminglinux:/bin/bash

12.1.3過濾出所有包含數字的行

示例命令如下:

# grep '[0-9]' /etc/inittab
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5

說明只要有一個數字就算匹配到了。

12.1.4過濾出所有不包含數字的行

示例命令如下:

# grep -v '[0-9]' /etc/inittab
# inittab is no longer used.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target

說明:和上一例的結果正好相反,只要是包含一個數字,就不顯示。

12.1.5過濾掉所有以#開頭的行

操作樣例文檔/etc/sos.conf的內容如下:

[plugins]
#disable = rpm, selinux, dovecot


[tunables]
#rpm.rpmva = off


#general.syslogsize = 15
# grep -v '^#' /etc/sos.conf
[plugins]


[tunables]

說明:這里面是含有空行的。

那如何將空行刪除呢?示例命令如下:

# grep -v '^#' /etc/sos.conf |grep -v '^$'
[plugins]
[tunables]
在正則表達式中,^表示行的開始,$表示行的結尾,那么空行則可以用^$表示。如何打印出不以英文字母開頭的行呢?我們先來自定義一個文件,如下所示:
# mkdir /tmp/1
# cd /tmp/1
# vim test.txt //內容如下
123
abc
456
abc2323
#laksdjf
Alllllllll

接下來看兩個例子:

# grep '^[^a-zA-Z]' test.txt
123
456
#laksdjf
# grep '[^a-zA-Z]' test.txt
123
456
abc2323
#laksdjf
前面也提到過中括號[]的應用,如果是數字就用[0-9]這樣的形式(當遇到類似[15]的形式時,表示只含有1或者5)。如果要過濾數字以及大小寫字母,則要寫成類似[0-9a-zA-Z]的形式。另外,[^字符]表示除[]內字符之外的字符。請注意,把^寫到方括號里面和外面是有區別的。

12.1.6過濾出任意一個字符和重復字符

示例命令如下:

# grep 'r.o' /etc/passwd
root0root:/root:/bin/bash
operator11operator:/root:/sbin/nologin

.表示任意一個字符。上例中,r.o表示把r與o之間有一個任意字符的行過濾出來。

# grep 'ooo*' /etc/passwd
root0root:/root:/bin/bash
lp4lp:/var/spool/lpd:/sbin/nologin
mail8mail:/var/spool/mail:/sbin/nologin
operator11operator:/root:/sbin/nologin
setroubleshoot981:/var/lib/setroubleshoot:/sbin/nologin

*表示零個或多個*前面的字符。上例中,ooo*表示oo、ooo、oooo...或者更多的o。

# grep '.*' /etc/passwd |wc -l
45
# wc -l /etc/passwd
45 /etc/passwd

上例中,.*表示零個或多個任意字符,空行也包含在內,它會把/etc/passwd文件里面的所有行都匹配到,你也可以不加|wc -l看一下效果。

12.1.7指定要過濾出的字符出現次數

示例命令如下:

# grep 'o{2}' /etc/passwd
root0root:/root:/bin/bash
lp4lp:/var/spool/lpd:/sbin/nologin
mail8mail:/var/spool/mail:/sbin/nologin
operator11operator:/root:/sbin/nologin
setroubleshoot981:/var/lib/setroubleshoot:/sbin/nologin
這里用到了符號{},其內部為數字,表示前面的字符要重復的次數。需要強調的是,{}左右都需要加上轉義字符。另外,使用“{ }”還可以表示一個范圍,具體格式為{n1,n2},其中n1 < n2,表示重復n1到n2次前面的字符,n2還可以為空,這時表示大于等于n1次。 除grep工具外,阿銘也常常用到egrep這個工具,后者是前者的擴展版本,可以完成grep不能完成的工作。

下面阿銘介紹egrep不同于grep的幾個用法。為了試驗方便,阿銘把test.txt編輯成如下內容:
rot0/rot:/bin/bash
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

12.1.8過濾出一個或多個指定的字符

示例命令如下:

# egrep 'o+' test.txt
rot0/rot:/bin/bash
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
# egrep 'oo+' test.txt
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
# egrep 'ooo+' test.txt
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
和grep不同,這里egrep使用的是符號+,它表示匹配1個或多個+前面的字符,這個“+”是不支持被grep直接使用的。包括上面的{},也是可以直接被egrep使用,而不用加轉義。示例如下:
# egrep 'o{2}' /etc/passwd
root0root:/root:/bin/bash
lp4lp:/var/spool/lpd:/sbin/nologin
mail8mail:/var/spool/mail:/sbin/nologin
operator11operator:/root:/sbin/nologin
setroubleshoot981:/var/lib/setroubleshoot:/sbin/nologin

12.1.9過濾出零個或一個指定的字符

示例命令如下:

# egrep 'o?' test.txt
rot0/rot:/bin/bash
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
# egrep 'ooo?' test.txt
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
# egrep 'oooo?' test.txt
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash

12.1.10過濾出字符串1或者字符串2

示例命令如下:

# egrep 'aaa|111|ooo' test.txt
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

12.1.11egrep中()的應用

示例命令如下:
# egrep 'r(oo|at)o' test.txt
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash
這里用()表示一個整體,上例中會把包含rooo或者rato的行過濾出來,另外也可以把()和其他符號組合在一起,例如(oo)+就表示1個或者多個oo。如下所示:
# egrep '(oo)+' test.txt
operator11operator:/root:/sbin/nologin
operator11operator:/rooot:/sbin/nologin
roooot0/rooooot:/bin/bash

好了,grep常用的就這些,足夠你在工作中用了。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • grep
    +關注

    關注

    0

    文章

    22

    瀏覽量

    4723

原文標題:一篇文章總結完grep用法

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Linux中grep命令的12個實際例子

    Linux中grep命令的12個實際例子
    發表于 02-08 09:38 ?697次閱讀

    Linux中grep、sed和awk命令詳解

    今天給大家聊一聊Linux中文本操作的`三劍客:awk、grep、sed`,因其功能強大、使用頻繁,且是Linux下文本處理的得力利器,常被稱之為`文本三劍客`。`grep`常用于查找,`sed`
    發表于 04-26 17:20 ?3239次閱讀
    Linux中<b class='flag-5'>grep</b>、sed和awk<b class='flag-5'>命令</b><b class='flag-5'>詳解</b>

    12個 Linux 中 grep 命令的超級用法實例

    grep命令中使用選項-E來啟用它。$ sudo grep -E12.搜索一個固定匹配字符串fgrep用于在一個文件或文件列表中搜索固定樣式的字符串。功能與
    發表于 05-12 08:00

    Linux命令grep

    Linux命令grep
    發表于 05-29 07:13

    linux grep命令詳解

    grep。它功能更強,可以通過-G、-E、-F命令選項來使用egrep和fgrep的功能。  grep常用用法  [root@www ~
    發表于 03-31 10:05

    Linux關機命令詳解

    Linux關機命令詳解 在linux下一些常用的關機/重啟命令有shutdown、halt、reboot、及init,它們都 可以達到重啟系統的目的,但每個
    發表于 01-18 12:52 ?3630次閱讀

    Linux中用grep命令來搜索單詞及統計匹配的行數

    使用 grep 命令來搜索多個單詞要使用 grep 命令來搜索多個字符串或單詞,我們該怎么做?例如我想要查找 /path/to/file 文件中的 word1、word
    發表于 04-02 14:46 ?632次閱讀

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

    grep命令是(global regular expression print,全局正則表達式輸出)的縮寫,它是Linux中功能最強大且最常用命令之一。
    的頭像 發表于 06-21 12:06 ?3311次閱讀

    詳解tcpdump命令的六個常用選項

    tcpdump用于捕獲和分析網絡流量。系統管理員可以使用它來查看實時流量或將輸出保存到文件中并在以后進行分析。下面列出6個常用選項
    的頭像 發表于 03-16 10:30 ?2917次閱讀

    如何使用grep命令

    grep命令的全稱是全局正則表達式打印,它是Linux中功能最強大且最常用命令之一。
    的頭像 發表于 12-06 16:43 ?2101次閱讀

    如何使用grep對標準輸出進行過濾

    grep命令的全稱是全局正則表達式打印,它是Linux中功能最強大且最常用命令之一。
    的頭像 發表于 12-12 17:30 ?2472次閱讀

    egrep和grep兩個常用命令區別在哪?

    egrep 和 grep 是兩個常用命令行工具,用于在文本文件中搜索匹配某個模式的行。它們的主要區別在于正則表達式的語法支持。
    的頭像 發表于 07-08 10:01 ?8525次閱讀

    nmcli命令的一些常用選項和用法

    以下是nmcli命令的一些常用選項和用法: connection show -- 顯示所有網絡連接的詳細信息。 connection up --啟動網絡連接。 connection down
    發表于 10-08 11:15 ?1600次閱讀
    nmcli<b class='flag-5'>命令</b>的一些<b class='flag-5'>常用</b><b class='flag-5'>選項</b>和用法

    kafka相關命令詳解

    kafka常用命令詳解
    的頭像 發表于 10-20 11:34 ?935次閱讀

    詳解kubectl常用命令

    詳解kubectl常用命令
    的頭像 發表于 11-05 15:39 ?193次閱讀
    <b class='flag-5'>詳解</b>kubectl<b class='flag-5'>常用命令</b>
    主站蜘蛛池模板: 国产精品无码人妻99999| 日本十八禁无遮无挡漫画| z00兽200俄罗斯| 亚洲毛片网| 日本不卡不码高清免费| 吉吉影音先锋av资源| 大睾丸内射老师| 在教室伦流澡到高潮H女攻视频| 欧美乱码伦视频免费66网| 国产在线AV一区二区香蕉| ZZoo兽2皇| 中文字幕99香蕉在线| 亚洲 欧美 国产 综合五月天| 男人的天堂久久精品激情a| 国产真实乱对白精彩| 大胸女晃奶动态图| 60老妇性xxxxhd| 一级做a爰片久久毛片免费 | 亚洲精品久久YY5099| 琪琪午夜福利免费院| 久久久久久免费观看| 国产午夜一级淫片| 成年视频国产免费观看| 18禁黄久久久AAA片| 国产精品日本无码久久一老A| 91精品一区二区三区在线观看| 亚洲国产精品无码中文字满 | 亚洲欧美一区二区三区导航| 色拍拍噜噜噜久久蜜桃| 欧美成人无码A区在线观看免费| 久久精品国产在热亚洲| 国产综合欧美区在线| 国产精品第3页| 动漫美女被h动态图| 午夜看片a福利在线观看| 90后性爱视频| 2020无码最新国产在线观看| 伊人久久综合热青草| 亚洲熟女丰满多毛XXXXX| 亚洲狠狠网站色噜噜| 亚洲国产系列一区二区三区|