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