網站首頁 編程語言 正文
一、grep基本介紹
全拼:Global search REgular expression and Print out the line.
作用:文本搜索工具,根據用戶指定的“模式(過濾條件)”對目標文本逐行進行匹配檢查,打印匹配到的行.
模式:由正則表達式的元字符及文本字符所編寫出的過濾條件﹔
grep命令是Linux系統中最重要的命令之一,功能是從文本文件或管道數據流中篩選匹配的行和數據,如果再配合正則表達式,功能十分強大,是Linux運維人員必備的命令
grep命令里的匹配模式就是你想要找的東西,可以是普通的文字符號,也可以是正則表達式
二、正則表達式grep實踐
首先先看一下這個測試文件的內容吧
2.1、輸出以 I 開頭的行(不區分大小寫)
注: 這里的-i代表不區分大小寫, -n代表顯示匹配行和行號
2.2、輸出以.結尾的行
注: 因為.在這里有著特殊含義, 所以要用\轉義一下, 如果不加轉義字符的話, grep就會把它當做正則表達式來處理(.代表的含義是匹配任意一個字符)
2.3、$符號 注意在Linux平臺下, 所有文件的結尾都有一個$符可以利用cat -A 查看文件
2.4、^$(代表空行的意思)組合符
找出文件的空行, 以及行號
2.5、.點符號
"."點表示任意一個字符, 有且只有一個, 不包含空行
2.6、*符號
"*"表示找出前一個字符0次或一次以上
找出文件中i出現0次或多次的行和行號
2.7、.*組合符
".*"表示所有內容, 包括空行
2.8、^.*t符 (含義: 以任意內容開頭, 直到t結束)
2.9、[abc]中括號
中括號表達式,[abc]表示匹配中括號中任意一個字符, a或b或c,常見的形式如下;
[a-z]匹配所有小寫單個字母[A-Z]匹配所有單個大寫字母[a-zA-Z]匹配所有的單個大小寫字母[0-9]匹配所有單個數字[a-zA-ZO-9]匹配所有數字和字母
匹配abc字符中的任意一個,得到它的行數和行號?
2.10、grep的參數-o
使用"-o"選項, 可以值顯示被匹配到的關鍵字, 而不是講整行的內容都輸出.
顯示出文章中有多少行有a
"-c"只統計匹配的行數
2.11、[^abc]中括號中去反
[^abc]或[^a-c]這樣的命令, "^"符號在中括號中第一位表示排除, 就是排除字符a,b,c
注: 出現再中括號里的尖角號表示取反
三、擴展正則表達式grep實踐
此處使用grep -E進行實踐擴展正則, egrep官網已經棄用了
3.1、+號
+號表示匹配前一個字符1一次或多次,必須使用grep-E擴展正則
3.2、?符
匹配前一個字符0次或1次
找出文件中包含gd或者god的行
3.3、|符
豎線|再正則中是或者的意思
找出opt目錄中txt結尾的文件, 其名字中包含a或者e, 不區分大小寫(-i)
3.4、()小括號
將一個或多個字符捆綁在一起, 當作一個整體進行處理
3.5、{n,m}匹配次數
{n,m}:匹配前一個字符至少n次, 最多m次
{n,}: 匹配前一個字符至少n次, 沒有上限
{,m}: 匹配前一個字符最多m次,可以沒有
重復前一個字符各種次數, 可以通過-o參數顯示明確的匹配過程
原文鏈接:https://blog.csdn.net/m0_50370837/article/details/125068528
相關推薦
- 2022-09-05 SparkStreaming寫入Hive慢
- 2023-03-21 Golang使用Gin創建Restful?API的實現_Golang
- 2023-04-19 清楚詳解Android?進程間圖傳遞圖形buffer原理_Android
- 2023-10-27 react調用MATERIAL-UI的組件中使用componentWillReceiveProps或
- 2022-02-23 在項目中全局自動加載默認圖的技巧
- 2022-06-16 C#中執行SQL的幾種方法講解_C#教程
- 2022-05-10 react設置多個classname
- 2023-01-13 Go?cobra庫使用教程_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支