最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux中g(shù)rep和egrep命令詳解

 更新時(shí)間:2019年10月13日 14:15:36   作者:湯高  
在本篇文章里小編給大家整理的是關(guān)于Linux之grep和egrep命令總結(jié)內(nèi)容,有需要的朋友們參考學(xué)習(xí)下。

rep / egrep

語(yǔ)法: grep  [-cinvABC]  'word'  filename

-c :打印符合要求的行數(shù)
-i :忽略大小寫
-n :在輸出符合要求的行的同時(shí)連同行號(hào)一起輸出
-v :打印不符合要求的行
-A :后跟一個(gè)數(shù)字(有無(wú)空格都可以),例如 A2則表示打印符合要求的行以及下面兩行
-B :后跟一個(gè)數(shù)字,例如 B2 則表示打印符合要求的行以及上面兩行
-C :后跟一個(gè)數(shù)字,例如 C2 則表示打印符合要求的行以及上下各兩行

把包含 ‘halt' 的行以及這行下面的兩行都打印出。

[root@localhost ~]# grep -A2 'halt' /etc/passwd
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

把包含 ‘halt' 的行以及這行上面的兩行都打印出。

[root@localhost ~]# grep -B2 'halt' /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt

 

把包含 ‘halt' 的行以及這行上面和下面的各兩行都打印出。

過(guò)濾出帶有某個(gè)關(guān)鍵詞的行并輸出行號(hào) 

[root@localhost ~]# grep -n 'root' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
11:operator:x:11:0:operator:/root:/sbin/nologin

過(guò)濾不帶有某個(gè)關(guān)鍵詞的行,并輸出行號(hào) 

[root@localhost ~]# grep -nv 'nologin' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
26:test:x:511:511::/home/test:/bin/bash
27:test1:x:512:511::/home/test1:/bin/bash

過(guò)濾出所有包含數(shù)字的行 

[root@localhost ~]# grep '[0-9]' /etc/inittab
# upstart works, see init(5), init(8), and initctl(8).
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
id:3:initdefault:

過(guò)濾出所有不包含數(shù)字的行 

[root@localhost ~]# grep -v '[0-9]' /etc/inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
#
# Default runlevel. The runlevels used are:
#

把所有以 ‘#' 開頭的行去除 

[root@localhost ~]# grep -v '^#' /etc/inittab
id:3:initdefault:

去除所有空行和以 ‘#' 開頭的行 

[root@localhost ~]# grep -v '^#' /etc/crontab |grep -v '^$'
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

 

在正則表達(dá)式中, “^” 表示行的開始, “$” 表示行的結(jié)尾,那么空行則可以用 “^$” 表示,如何打印出不以英文字母開頭的行呢?

[root@localhost ~]# vim test.txt
[root@localhost ~]# cat test.txt
123
abc
456
abc2323
#laksdjf
Alllllllll

先在test.txt中寫幾行字符串,用來(lái)做實(shí)驗(yàn)。

[root@localhost ~]# grep '^[^a-zA-Z]' test.txt
123
456
#laksdjf
[root@localhost ~]# grep '[^a-zA-Z]' test.txt
123
456
abc2323
#laksdjf

如果是數(shù)字的話就用[0-9]這樣的形式,當(dāng)然有時(shí)候也可以用這樣的形式[15]即只含有1或者5,注意,它不會(huì)認(rèn)為是15。如果要過(guò)濾出數(shù)字以及大小寫字母則要這樣寫[0-9a-zA-Z]。另外[ ]還有一種形式,就是[^字符] 表示除[ ]內(nèi)的字符之外的字符。

過(guò)濾任意一個(gè)字符與重復(fù)字符 

[root@localhost ~]# grep 'r..o' /etc/passwd
operator:x:11:0:operator:/root:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

. 表示任意一個(gè)字符,上例中,就是把符合r與o之間有兩個(gè)任意字符的行過(guò)濾出來(lái), * 表示零個(gè)或多個(gè)前面的字符。

[root@localhost ~]# grep 'ooo*' /etc/passwd
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

‘ooo*' 表示oo, ooo, oooo ... 或者更多的 ‘o' 現(xiàn)在你是否想到了 ‘.*' 這個(gè)組合表示什么意義?

[root@localhost ~]# grep '.*' /etc/passwd |wc -l
27
[root@localhost ~]# wc -l /etc/passwd
27 /etc/passwd

‘.*' 表示零個(gè)或多個(gè)任意字符,空行也包含在內(nèi)。

指定要過(guò)濾字符出現(xiàn)的次數(shù) 

[root@localhost ~]# grep 'o\{2\}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

也可以不用脫意符\  加上-E

grep -E 'o{2}' /etc/passwd

這里用到了{(lán) },其內(nèi)部為數(shù)字,表示前面的字符要重復(fù)的次數(shù)。上例中表示包含有兩個(gè)o 即 ‘oo' 的行。注意,{ }左右都需要加上脫意字符 ‘\', 另外,使用{ }我們還可以表示一個(gè)范圍的,具體格式是 ‘{n1,n2}' 其中n1<n2,表示重復(fù)n1到n2次前面的字符,n2還可以為空,則表示大于等于n1次。

上面部分講的grep,另外常常用到egrep這個(gè)工具,簡(jiǎn)單點(diǎn)講,后者是前者的擴(kuò)展版本,我們可以用egrep完成grep不能完成的工作,當(dāng)然了grep能完成的egrep完全可以完成。如果你嫌麻煩,egrep了解一下即可,因?yàn)間rep的功能已經(jīng)足夠可以勝任你的日常工作了。下面介紹egrep不用于grep的幾個(gè)用法。為了試驗(yàn)方便,把test.txt 編輯成如下內(nèi)容:

rot:x:0:0:/rot:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
operator:x:11:0:operator:/rooot:/sbin/nologin
roooot:x:0:0:/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

篩選一個(gè)或一個(gè)以上前面的字符 

[root@localhost ~]# egrep 'o+' test.txt
rot:x:0:0:/rot:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
operator:x:11:0:operator:/rooot:/sbin/nologin
roooot:x:0:0:/rooooot:/bin/bash
[root@localhost ~]# egrep 'oo+' test.txt
operator:x:11:0:operator:/root:/sbin/nologin
operator:x:11:0:operator:/rooot:/sbin/nologin
roooot:x:0:0:/rooooot:/bin/bash
[root@localhost ~]# egrep 'ooo+' test.txt
operator:x:11:0:operator:/rooot:/sbin/nologin
roooot:x:0:0:/rooooot:/bin/bash

篩選零個(gè)或一個(gè)前面的字符 

[root@localhost ~]# egrep 'o?' test.txt
rot:x:0:0:/rot:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
operator:x:11:0:operator:/rooot:/sbin/nologin
roooot:x:0:0:/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
[root@localhost ~]# egrep 'ooo?' test.txt
operator:x:11:0:operator:/root:/sbin/nologin
operator:x:11:0:operator:/rooot:/sbin/nologin
roooot:x:0:0:/rooooot:/bin/bash
[root@localhost ~]# egrep 'oooo?' test.txt
operator:x:11:0:operator:/rooot:/sbin/nologin
roooot:x:0:0:/rooooot:/bin/bash

篩選字符串1或者字符串2 

[root@localhost ~]# egrep 'aaa|111|ooo' test.txt
operator:x:11:0:operator:/rooot:/sbin/nologin
roooot:x:0:0:/rooooot:/bin/bash
1111111111111111111111111111111
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

egrep中( )的應(yīng)用 

[root@localhost ~]# egrep 'r(oo)|(at)o' test.txt
operator:x:11:0:operator:/root:/sbin/nologin
operator:x:11:0:operator:/rooot:/sbin/nologin
roooot:x:0:0:/rooooot:/bin/bash

用( )表示一個(gè)整體,例如(oo)+就表示1個(gè) ‘oo' 或者多個(gè) ‘oo'

[root@localhost ~]# egrep '(oo)+' test.txt
operator:x:11:0:operator:/root:/sbin/nologin
operator:x:11:0:operator:/rooot:/sbin/nologin
roooot:x:0:0:/rooooot:/bin/bash

以上就是本次介紹的Linux之grep和egrep命令的全部相關(guān)知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。

相關(guān)文章

  • Linux內(nèi)核設(shè)備驅(qū)動(dòng)之系統(tǒng)調(diào)用筆記整理

    Linux內(nèi)核設(shè)備驅(qū)動(dòng)之系統(tǒng)調(diào)用筆記整理

    今天小編就為大家分享一篇關(guān)于Linux內(nèi)核設(shè)備驅(qū)動(dòng)之系統(tǒng)調(diào)用筆記整理,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • centos7 用rpm安裝mysql詳解

    centos7 用rpm安裝mysql詳解

    這篇文章主要介紹了centos7 用rpm安裝mysql詳解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Linux 中的文件復(fù)制cp命令和scp命令詳解

    Linux 中的文件復(fù)制cp命令和scp命令詳解

    這篇文章主要介紹了Linux 中的文件復(fù)制cp命令和scp命令詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • apache下運(yùn)行cgi模式的配置方法

    apache下運(yùn)行cgi模式的配置方法

    這篇文章主要介紹了apache下運(yùn)行cgi模式的配置方法,需要的朋友可以參考下
    2014-04-04
  • ubuntu18虛擬機(jī)克隆后ip相同的解決方法

    ubuntu18虛擬機(jī)克隆后ip相同的解決方法

    這篇文章主要給大家介紹了關(guān)于ubuntu18虛擬機(jī)克隆后ip相同的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Linux下強(qiáng)制殺死進(jìn)程的方法詳解

    Linux下強(qiáng)制殺死進(jìn)程的方法詳解

    這篇文章中我們給大家分享了關(guān)于Linux下強(qiáng)制殺死進(jìn)程的方法技巧相關(guān)內(nèi)容,有興趣的朋友們可以參考了下。
    2018-09-09
  • linux nslookup命令使用詳解

    linux nslookup命令使用詳解

    這篇文章主要介紹了linux nslookup命令使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • CentOS8中的nmcli使用詳解

    CentOS8中的nmcli使用詳解

    這篇文章主要介紹了CentOS8的nmcli使用,基于RHEL8/CentOS8的nmcli常見(jiàn)命令使用,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Apache使用.htaccess 屏蔽惡意 User Agent(防蜘蛛)

    Apache使用.htaccess 屏蔽惡意 User Agent(防蜘蛛)

    這篇文章主要介紹了Apache使用.htaccess 屏蔽惡意 User Agent(防蜘蛛),需要的朋友可以參考下
    2016-07-07
  • Windows下 Apache PHP 環(huán)境搭建的方法

    Windows下 Apache PHP 環(huán)境搭建的方法

    經(jīng)常在 Linux 環(huán)境下搭建 php 環(huán)境,在 windows 下還是第一次,沒(méi)啥技術(shù)含量,就是記錄一下,需要的朋友參考下本教程
    2017-01-01

最新評(píng)論

竹溪县| 阿拉善左旗| 商水县| 萍乡市| 大宁县| 盱眙县| 麦盖提县| 遂平县| 广汉市| 游戏| 合江县| 长沙县| 班戈县| 融水| 南昌市| 大冶市| 民县| 攀枝花市| 汪清县| 芜湖县| 沂源县| 济南市| 梅州市| 马山县| 防城港市| 天全县| 雷波县| 剑阁县| 云浮市| 平谷区| 曲周县| 香港| 栾川县| 兰溪市| 晋江市| 崇明县| 榆社县| 察哈| 浦县| 湘西| 岐山县|