日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

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

grep命令詳解

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

grep使用的是基本元字符,egrep使用的是擴展正則表達式,,可以使用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: 不區分大小寫

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

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

? ? ? ? ?-w:匹配字母和數字

? ? ? ? ?-c:顯示匹配的行數

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

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

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

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

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


基本元字符

? ? ? ?^ :錨定行首

? ? ? ?$ :錨定行尾

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

? ? ? ?* :一個字符

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

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

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

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

? ? ? ?x\{m\} ?字符x出現m次

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

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

? ? ? ?\w :匹配單詞

? ? ? ?\W ?

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


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

POSIX字符類

[:alnum:]

文字數字字符

[:alpha:]

飛數字字符字符

[:digit:]

數字字符

[:graph:]

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

[:lower:]

小寫字符

[:cntrl:]

?控制字符

[:print:]

非空字符(包括空格)

[:punct:]

標點符號

[:space:]

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

[:upper:]

大寫字符

[:xdigit:]

十六進制字符



實例

1、顯示/proc/meminfo文件中以大小寫s開頭的行;
? ? ? ? grep [Ss] ?/proc/meminfo
? ? 2、取出默認shell為非bash的用戶;
? ? ? grep -v 'bash' /etc/passwd
? ? 3、取出默認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文件中一位數或兩位數;
? ? ? ? ? ? grep '\<[0-9]\{1,2\}\>' /etc/passwd
? ? 7、找出ifconfig命令結果中的1到255之間的整數;
? ? ? ? ? ? ? ? ifconfig eth0|egrep '2[0-5][0-5]|1[0-9][0-9]|[1-9][0-9]|[0-9]'
? ? 8、查看當前系統上root用戶的所有信息;
? ? ? ? ? ? ? ? ? grep '\<root\>' /etc/passwd
? ? 9、添加用戶bash和testbash、basher,而后找出當前系統上其用戶名和默認shell相同的用戶;

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

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

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


轉載于:https://blog.51cto.com/limeizhi/1362238

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。