擴充套件正規表示式
1.顯示三個使用者root,cisco,ccnp的uid和預設shell (普通正規表示式與擴充套件正規表示式)
[17:27:08 root@localhost data]#cat /etc/passwd |grep '^root\b\|^ccnp\b\|^cisco\b' |cut -d: -f1,3,7
root:0:/bin/bash
cisco:1000:/bin/bash
ccnp:1006:/bin/bash
[17:16:48 root@localhost data]#cat /etc/passwd |grep -e '^(root|ccnp|cisco)\b' |cut -d: -f1,3,7
root:0:/bin/bash
cisco:1000:/bin/bash
ccnp:1006:/bin/bash
[20:45:33 root@localhost ~]#cat /etc/passwd |grep -ew '^(root|ccnp|cisco)' |cut -d: -f1,3,7
root:0:/bin/bash
cisco:1000:/bin/bash
ccnp:1006:/bin/bash
2.找出/etc/rc.d/init.d/functions檔案中行首為某單詞(保護下劃線)後面跟乙個小括號的行
cat /etc/rc.d/init.d/functions |grep -e -o '^([[:alnum:]]|_)+\(\)*'
3.使用egrep 取出/etc/rc.d/init.d/funcitons
[19:24:44 root@localhost data]#echo /etc/rc.d/init.d/functions |grep -eo "[^/]+$"
functions
4.使用egrep取出上面路徑的目錄名
[19:27:51 root@localhost data]#echo /etc/rc.d/init.d/functions |grep -eo '^/.*/'
/etc/rc.d/init.d/
5.利用擴充套件正規表示式分別表示0-9,10-99,100-100,200-249,250.-255
echo 1 10 101 201 250 252 > f1
egrep "\b[[:digit:]]\>" f1
egrep "\b[1-9][[:digit:]]\>" f1
egrep "\b1[[:digit:]]\>" f1
egrep "\b2[0-4][[:digit:]]\>" f1
egrep "25[0-5]" f1
6.顯示ifconfig命令結果中所有ipv4位址
ifconfig |grep -o 'inet\b *.*.*.*' |cut -d' ' -f2
ifconfig |grep 'inet\b' | tr -s ' ' |cut -d ' ' -f3
ifconfig |grep -w inet | tr -s ' ' |cut -d ' ' -f3
7.將此字串:中的每個字元去重並排序,重複次數多的排到前面
echo 'welcom tooo linuxx' | grep -o [[:alpha:]]|uniq -c | sort -n
cat /etc/motd | grep -o [[:alpha:]]|uniq -c | sort -nr
8.取網絡卡第乙個ip位址
ifconfig |grep -eo '([0-9]\.)[0-9]'|head -1
擴充套件正規表示式
事實上,一般實驗者只需要熟悉基礎的正規表示式就足夠了。不過有時候為了簡化命令操作,了解一些使用範圍更廣的擴充套件表示式,會更加方便。正規表示法 grep v regular express.txt grep v 需要使用到管線命令來搜尋兩次!那麼如果使用延伸型的正規表示法,我們可以簡化為 egrep...
擴充套件正規表示式
使用egrep或者grep e 一般都是使用egrp 語法 擴充套件正規表示式 re字元 意義與範例 重複乙個或者乙個以上的前乙個字元 egrep n go d regular express.txt 零個或者乙個前乙個字元 egrep n go?d regular express.txt or的意...
擴充套件正規表示式 egrep
grep 命令僅支援基礎正規表示式,如果使用擴充套件正規表示式,需要使用 egrep 或 awk 命令。這裡我們直接使用 egrep 命令。egrep 命令與 grep 命令的用法基本相似。egrep 命令是乙個搜尋檔案獲得模式,使用該命令可以搜尋檔案中的任意 字串和符號,也可以搜尋乙個或多個檔案的...