摘要:文本處理工具文本處理三劍客文本過濾工具基本正則表達(dá)式,流編輯器文本編輯工具上的實(shí)現(xiàn)為,文本報告生成器,格式化文本正則表達(dá)式由一類特殊字符及文本字符所編寫的模式類別基本正則表達(dá)式擴(kuò)展正則表達(dá)式作用文本搜索工具,根據(jù)用戶指定的模式過濾條件對目標(biāo)
Command grep 文本處理工具
Linux文本處理三劍客
grep:文本過濾工具(pattern) grep:基本正則表達(dá)式 sed:stream editor,流編輯器:文本編輯工具 gawk:Linux上的實(shí)現(xiàn)為gawk,文本報告生成器,格式化文本
正則表達(dá)式:
Regular Expression REGEXP 由一類特殊字符及文本字符所編寫的模式 類別: 基本正則表達(dá)式:BRE 擴(kuò)展正則表達(dá)式:EREgrep:Global search REgular expression and Print out the line
作用:文本搜索工具,根據(jù)用戶指定的“模式(過濾條件)”對目標(biāo)文本逐行進(jìn)行匹配檢查;打印匹配到的行;
模式:由正則表達(dá)式的元字符及文本字符所編寫出的過濾條件;
格式:
grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
OPTIONS:
--color=auto:對匹配到的文本著色后高亮顯示; -i:ignorecase,忽略字符的大小寫; -o:僅顯示匹配到的字符串本身;即不會顯示匹配到的字符串所在的行 -v, --invert-match:顯示不能被模式匹配到的行; -E:支持使用擴(kuò)展的正則表達(dá)式元字符; -q, --quiet, --silent:靜默模式,即不輸出任何信息; -A #:after, 后#行 -B #:before,前#行 -C #:context,前后各#行正則表達(dá)式 基本正則表達(dá)式元字符
字符匹配:
. :匹配任意單個字符; []:匹配指定范圍內(nèi)的任意單個字符; [^]:匹配指定范圍外的任意單個字符; [:digit:]、[:lower:]、[:upper:]、[:alpha:]、[:alnum:]、[:punct:]、[:space:]
匹配次數(shù):用在要指定其出現(xiàn)的次數(shù)的字符的后面,用于限制其前面字符出現(xiàn)的次數(shù);默認(rèn)工作于貪婪模式;
*:匹配其前面的字符任意次;0,1,多次; 例如:grep "x+y" abxy aby xxxxxy yab .*:匹配任意長度的任意字符 ?:匹配其前面的字符0次或1次;即其前面的字符是可有可無的; +:匹配其前面的字符1次或多次;即其面的字符要出現(xiàn)至少1次; {m}:匹配其前面的字符m次; {m,n}:匹配其前面的字符至少m次,至多n次; {0,n}:至多n次 {m,}:至少m次
位置錨定:
^:行首錨定;用于模式的最左側(cè); $:行尾錨定;用于模式的最右側(cè); ^PATTERN$:用于PATTERN來匹配整行; ^$:空白行; ^[[:space:]]*$:空行或包含空白字符的行; 單詞:非特殊字符組成的連續(xù)字符(字符串)都稱為單詞; < 或 :詞首錨定,用于單詞模式的左側(cè); > 或 :詞尾錨定,用于單詞模式的右側(cè);:匹配完整單詞;
分組及引用
():將一個或多個字符捆綁在一起,當(dāng)作一個整體進(jìn)行處理; (xy)*ab 后向引用:引用前面的分組括號中的模式所匹配到的字符; Note:分組括號中的模式匹配 到的內(nèi)容會被正則表達(dá)式引擎自動記錄于內(nèi)部的變量中,這些變量為: 1:模式從左側(cè)起,第一個左括號以及與之匹配的右括號之間的模式所匹配到的字符; 2:模式從左側(cè)起,第二個左括號以及與之匹配的右括號之間的模式所匹配到的字符; 3 ...
或者
|
He loves his lover. He likes his lover. She likes her liker. She loves her liker.
試驗(yàn)
1、顯示/etc/passwd文件中不以/bin/bash結(jié)尾的行; grep -v "/bin/bash"/bin/bash 2、找出/etc/passwd文件中的兩位數(shù)或三位數(shù); grep "<[0-9]{2,3}>" /etc/passwd 3、找出/etc/rc.d/rc.sysinit或/etc/grub2.cfg文件中,以至少一個空白字符開頭,且后面非空白字符的行; grep "^[[:space:]]+[^[:space:]]" 4、找出"netstat -tan"命令的結(jié)果中以"LISTEN"后跟0、1或多個空白字符結(jié)尾的行; ~]# netstat -tan | grep "LISTEN[[:space:]]*$"擴(kuò)展正則表達(dá)式 egrep:extended grep
支持?jǐn)U展的正則表達(dá)式實(shí)現(xiàn)類似于grep文本過濾功能;相當(dāng)于grep -E
格式:egrep [OPTIONS] PATTERN [FILE...]
選項(xiàng):
-i, -o, -v, -q, -A, -B, -C -G:支持基本正則表達(dá)式
擴(kuò)展正則表達(dá)式的元字符:
字符匹配: .:任意單個字符 []:指定范圍內(nèi)的任意單個字符 [^]:指定范圍外的任意單個字符 次數(shù)匹配: *:任意次,0,1或多次; ?:0次或1次,其前的字符是可有可無的; +:其前字符至少1次; {m}:其前的字符m次; {m,n}:至少m次,至多n次; {0,n} {m,} 位置錨定 ^:行首錨定; $:行尾錨定; <, :詞首錨定; >, :詞尾錨定; 分組及引用: ():分組;括號內(nèi)的模式匹配到的字符會被記錄于正則表達(dá)式引擎的內(nèi)部變量中; 后向引用:1, 2, ... 或: a|b:a或者b; C|cat:C或cat (c|C)at:cat或Cat
試驗(yàn)
1、找出/proc/meminfo文件中,所有以大寫或小寫S開頭的行;至少有三種實(shí)現(xiàn)方式; grep "^[Ss]" /proc/meminfo grep "^[Ss].*$" /proc/meminfo grep "^<[Ss].*>.*" /proc/meminfo grep -i "^s" /proc/meminfo grep -E "^(s|S)" /proc/meminfo 2、顯示肖前系統(tǒng)上root、centos或user1用戶的相關(guān)信息; grep -E "^(root|sshd|husa)>" /etc/passwd 不要忘記了錨定詞尾 3、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一個小括號的行; grep -E "<[[:alnum:]]+>()" /etc/rc.d/init.d/functions 4、使用echo命令輸出一絕對路徑,使用egrep取出基名; echo "/home/husa" | grep -E -o "([^/]+)/?$" 5、找出ifconfig命令結(jié)果中的1-255之間的數(shù)值; ~]# ifconfig | grep -E -o "<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])>" 6、IP地址 "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}" 7、添加用戶bash, testbash, basher以及nologin(其shell為/sbin/nologin);而后找出/etc/passwd文件中用戶名同shell名的行; ~]# grep -E "^([^:]+>).*1$" /etc/passwdfgrep
fgrep:不支持正則表達(dá)式元字符
當(dāng)無需要用到元字符去編寫模式時,使用fgrep效率更高
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39253.html
摘要:這時才發(fā)現(xiàn)上面的配置錯誤,必須用絕對路徑,不能用形如符號卸載重裝的正確姿勢查看當(dāng)前版本版本信息這里要重定向才可以輸出到文件哦之后,進(jìn)程是重新創(chuàng)建了的里面保存的是的主進(jìn)程號 GET THE CODE ganiks ? nginx-1.8.0 wget http://nginx.org/download/nginx-1.8.0.tar.gz ganiks ? nginx-1.8....
摘要:環(huán)境準(zhǔn)備準(zhǔn)備服務(wù)器確保有網(wǎng)絡(luò)確??捎藐P(guān)閉規(guī)則查看規(guī)則關(guān)閉規(guī)則保險起見,再查看下查表里是否有規(guī)則有的話,也關(guān)閉關(guān)閉策略查看是否開啟關(guān)閉安裝基礎(chǔ)庫開始安裝訪問官網(wǎng)復(fù)制以下源服務(wù)器上創(chuàng)建的源改成驗(yàn)證源從源安裝驗(yàn)證顯示如下啟動 環(huán)境準(zhǔn)備 準(zhǔn)備服務(wù)器centos7.2 確保有網(wǎng)絡(luò) ping www.baidu.com 確保yum可用 yum list | grep gcc 關(guān)閉iptables規(guī)...
摘要:什么是多路服用的實(shí)現(xiàn)方式基本原理函數(shù)監(jiān)視的文件描述符分類,分別是和。缺點(diǎn)能夠監(jiān)視文件描述符的數(shù)量存在最大限制。三的快速搭建和基本參數(shù)方式安裝參考創(chuàng)建文件,并輸入如下內(nèi)容可選值有和。 Nginx的快速搭建和基本參數(shù) 一、Nginx簡介 1. Nginx簡述 Nginx是一個開源且高性能、可靠的HTTP中間件、代理服務(wù)。 2. 常見的HTTP服務(wù) httpd - Apache IIS -...
摘要:什么是多路服用的實(shí)現(xiàn)方式基本原理函數(shù)監(jiān)視的文件描述符分類,分別是和。缺點(diǎn)能夠監(jiān)視文件描述符的數(shù)量存在最大限制。三的快速搭建和基本參數(shù)方式安裝參考創(chuàng)建文件,并輸入如下內(nèi)容可選值有和。 Nginx的快速搭建和基本參數(shù) 一、Nginx簡介 1. Nginx簡述 Nginx是一個開源且高性能、可靠的HTTP中間件、代理服務(wù)。 2. 常見的HTTP服務(wù) httpd - Apache IIS -...
摘要:新版本主進(jìn)程退出的同時,舊版本主進(jìn)程將會自動啟動它的工作進(jìn)程。下面我們來看一下如何給運(yùn)行中的添加模塊。 原文鏈接:http://xueliang.org/article/detail/20160615172540639 系統(tǒng)基于ubuntu server 14.04.4 amd64 安裝 第一步 下載并解壓Nginx壓縮包 從Nginx官網(wǎng)下載Nginx,或者在Linux上執(zhí)行wget...
閱讀 1216·2021-09-03 10:44
閱讀 617·2019-08-30 13:13
閱讀 2808·2019-08-30 13:11
閱讀 1976·2019-08-30 12:59
閱讀 1043·2019-08-29 15:32
閱讀 1607·2019-08-29 15:25
閱讀 1003·2019-08-29 12:24
閱讀 1290·2019-08-27 10:58