日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

grep,egrep及元字符和posix字符集

發(fā)布時間:2025/4/16 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 grep,egrep及元字符和posix字符集 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

grep命令詳解

? ?grep命令是*nix上匹配行的一個工具,可以用來搜索匹配的行,對于查找指定字符和字符行非常好用,grep非常有效grep家族包含grep,egrep,fgrep,

grep使用的是基本元字符,egrep使用的是擴(kuò)展正則表達(dá)式,,可以使用grep -E來使用egrep,使用grep -F來使用fgrep,或者直接使用egrep,fgrep,一般

來說grep,egrep比較常用,較少使用fgrep.下面來主要介紹grep和egrep.


? ? ?語法格式為 ? ? ?grep [OPTIONS] PATTERN [FILE...]
? ? ? ? ? ? ? ? ? ? ?grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]




grep的常用選型

? ? ? ? -i: 不區(qū)分大小寫

? ? ? ? ?-n: 匹配行顯示行號

? ? ? ? ?-v: 反向匹配,顯示不匹配的行

? ? ? ? ?-w:匹配字母和數(shù)字

? ? ? ? ?-c:顯示匹配的行數(shù)

? ? ? ? ?--color:用顏色顯示匹配到的字符

? ? ? ? ?-o:僅顯示匹配的字符

? ? ? ? ?-A:顯示匹配的后幾行

? ? ? ? ?-B:顯示匹配的前幾行

? ? ? ? ?-C:顯示匹配的上下幾行


基本元字符

? ? ? ?^ :錨定行首

? ? ? ?$ :錨定行尾

? ? ? ?. :零個或一個字符

? ? ? ?* :一個字符

? ? ? ?[]: 里面任一字符

? ? ? ?[^]:非^后的字符

? ? ? ?\(..\) ?后向引用

? ? ? ?\< ? :錨定字符

? ? ? ?x\{m\} ?字符x出現(xiàn)m次

? ? ? ?x\{m,\} ?字符m大于m次

? ? ? ?x\{m,n\} ?字符出現(xiàn)大于等于m次小于n次

? ? ? ?\w :匹配單詞

? ? ? ?\W ?

? ? ? ?\b 匹配單詞詞首或詞尾


擴(kuò)展元字符
? ? ? ? ? ?:0個或1個前面字符
? ? ? ? + ?:1個或多個前面字符
? ? ? ? () :一個表達(dá)式,可以用來后向引用 ?
? ? ? ? | ?:左右兩邊或者,表示選擇

POSIX字符類

[:alnum:]

文字?jǐn)?shù)字字符

[:alpha:]

飛數(shù)字字符字符

[:digit:]

數(shù)字字符

[:graph:]

非空字符(非空格、控制字符)

[:lower:]

小寫字符

[:cntrl:]

?控制字符

[:print:]

非空字符(包括空格)

[:punct:]

標(biāo)點符號

[:space:]

所有空白字符(新行,空格,制表符)

[:upper:]

大寫字符

[:xdigit:]

十六進(jìn)制字符



實例

1、顯示/proc/meminfo文件中以大小寫s開頭的行;
? ? ? ? grep [Ss] ?/proc/meminfo
? ? 2、取出默認(rèn)shell為非bash的用戶;
? ? ? grep -v 'bash' /etc/passwd
? ? 3、取出默認(rèn)shell為bash的且其ID號最大的用戶;
? ? ? ? grep 'bash' /etc/passwd | cut -d: -f3 |sort |tail -1
? ? 4、顯示/etc/rc.d/rc.sysinit文件中,以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;
? ? ? ?grep '^#[[:space:]]\{1,\}[[:space:]]\{1,\}' ?/etc/rc.d/rc.sysinit
? ? 5、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;
? ? ? ? ? ? grep '^[[:space:]]\{1,}' /boot/grub/grub.conf
? ? 6、找出/etc/passwd文件中一位數(shù)或兩位數(shù);
? ? ? ? ? ? grep '\<[0-9]\{1,2\}\>' /etc/passwd
? ? 7、找出ifconfig命令結(jié)果中的1到255之間的整數(shù);
? ? ? ? ? ? ? ? ifconfig eth0|egrep '2[0-5][0-5]|1[0-9][0-9]|[1-9][0-9]|[0-9]'
? ? 8、查看當(dāng)前系統(tǒng)上root用戶的所有信息;
? ? ? ? ? ? ? ? ? grep '\<root\>' /etc/passwd
? ? 9、添加用戶bash和testbash、basher,而后找出當(dāng)前系統(tǒng)上其用戶名和默認(rèn)shell相同的用戶;

? ? ? ? ? ? ? ? ? ? ?grep '^\([[:alpha:]]\{1\}\.*\1$' ?/etc/passwd

? ? 10、找出netstat -tan命令執(zhí)行的結(jié)果中以“LISTEN”或“ESTABLISHED”結(jié)尾的行; ? ? ? ? ? ? ? ? ? netstat -tan |egrep 'LISTEN|ESTABLISHED[[:space:]]\{1,\}$'
? ? 11、取出當(dāng)前系統(tǒng)上所有用戶的shell,要求:每種shell只顯示一次,且按升序顯示;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?cat /etc/passwd |cut -d: -f7 | sort -u


轉(zhuǎn)載于:https://blog.51cto.com/limeizhi/1362238

總結(jié)

以上是生活随笔為你收集整理的grep,egrep及元字符和posix字符集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。