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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux正则和grep命令

發布時間:2024/9/20 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux正则和grep命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 設置命令的默認參數和別名
  • 正則表達式
    • 元字符
    • 數量及各種括號
  • grep
    • egrep 對grep的增強,支持擴展的表達式
    • fgrep,查詢速度比grep快,但不會識別正則表達式,只會原樣搜索字符串。

?

正文

回到頂部

設置命令的默認參數和別名

  • 每次都要輸入?ls -l?,煩不煩,我想用?ll?來表示?ls -l, 可以,只要在?~/.bashrc?中加上?alias ll='ls -l'?,然后運行?source ~/.bashrc?來使配置立即生效即可。

回到頂部

正則表達式

  • 正則表達式就是有規則的字符串,字符串中有一些特殊字符來表示一定的規則,符合這個規則的字符串就能被匹配上。 如?^the?表示每一行都以the開頭的字符串;?^[^a-zA-Z]?表示所有不以英文字母開頭的行。

元字符

  • 所謂元字符,就是這個字符是代表一類字符或這代表某種規則。
  • .?對,就是小數點,它代表除換行符外的任意一個字符,注意是一個字符。
  • \w?匹配字母數字下劃線和漢子。注意也是匹配一個字符。
  • \s?匹配任意一個空白符。
  • \d?匹配任意一個數字。
  • \b?匹配單詞的開頭或結尾
  • ^?匹配行首。
  • $?匹配行尾。
  • [^x]?匹配任意不是x的字符。
  • [^xyz]?匹配任意不是x,y,z的字符。
  • 另外linux中大寫字母一般表示小寫字母的相反意義,上面的 w, s, d, b分別有對應的 W, S, D ,B 分別表示它們的相反意思。

數量及各種括號

  • *?放在一個字符的后面,表示前面的字符可以出現0次或多次。
  • ??同上,但是表示前面的字符可以出現0次或1次。
  • +?同上,但是代表前面的字符可以出現1次或多次。
  • ()?小括號,里面的看作一個整體,也就是看作一個"字符",*,? + 等修飾整個小括號里面的內容。
  • []?中括號,不論里面有多少字符,它僅表示一個字符,如 [abc] 表示字符a 或 字符b或字符c。
  • {}?大括號,修飾前面的一個字符,表示該字符出現多少次,如 {2} 表示除2次,{3,} 表示出現3或3次以上,{3,9} 表示出現次數在3到9之間,包括3和9. 注意?{?和?}?前要加轉義符。
  • |?或,如?abc \| cde?,匹配包含 abc 或 cde的行。注意?|?之前要加轉義符。

回到頂部

grep

  • grep: global search regular expression (RE). 一種可使用正則進行文本搜索的工具,并把匹配的行打印出來。

    示例

  • 將 /etc/passwd 沒有出現 root 的行取出來 :?grep -v /etc/passwd?-v?參數就表示相反的意思。
  • 在當前目錄及子目錄下遞歸搜索行內有 "important" 的文件 :?grep -r 'important' *

  • 在當前目錄及子目錄下遞歸搜索行內有 "important" 的文件,但僅顯示文件名 :?grep -l -r 'important' *
  • 搜尋包含 test 或 tast 的行并顯示行號 :?grep -n 't[ae]st' test.txt
  • 搜索包含 aa 但是 aa 前面不能是 b 的行:?grep '[^b]aa'
  • 搜索所有包含 hi并且hi前面不是小寫字母的行:?grep [^a-z]hi txt3
  • 搜索包含數字的行:?grep -n '[0-9]' txt3
  • 搜索行首是The的行:?grep -n '^The' txt3
  • 搜索行首第一個字母是小寫的行:?grep -n '^[a-z]' txt3
  • 搜索行首第一個字符不是字母的行:?grep -n '^[^a-zA-Z]' txt3
  • 搜索行尾為小數點的行:grep -n '\.$' txt3?因為小數點是元字符,所以加了轉移字符反斜杠。
  • 以?good.?結尾的行:?grep -n 'good.$' txt3
  • 找出類似?g??d?的行:?grep -n 'g..d' txt3
  • 找出 g后面跟2個或2個以上o的行:?grep -n 'go\{2,\}' txt3?注意大括號要前要加轉義符。

egrep 對grep的增強,支持擴展的表達式

  • 搜索所有包含 CN 或 US的行:?egrep -n 'CN|US' txt3?|?就是擴展的元字符,
  • 如果使用grep時在擴展的元字符前加反斜杠,grep會自動使用egrep. 如上面的也可寫成:?grep -n 'CN\|US' txt3
  • 搜索所有包含1個或多個3的行:egrep -n 'o+' txt3
  • 搜索所有包含1個或多個go的行:?egrep -n '(go)+' txt3

fgrep,查詢速度比grep快,但不會識別正則表達式,只會原樣搜索字符串。

  • 搜索包含?**?的行:?fgrep -n '**' txt3

來源:https://www.cnblogs.com/imap/p/7608406.html

總結

以上是生活随笔為你收集整理的Linux正则和grep命令的全部內容,希望文章能夠幫你解決所遇到的問題。

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