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

歡迎訪問 生活随笔!

生活随笔

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

linux

Linux 使用正则表达式的常用命令

發布時間:2025/3/17 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 使用正则表达式的常用命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【grep 命令】

1.基本操作

1)作用:grep命令用于打印輸出文本中匹配的模式串,它使用正則表達式作為模式匹配的條件。

2)命令格式:grep [選項] 要匹配的字符串 文件名

3)常見選項:

-b將二進制文件作為文本來進行匹配
-c統計以模式匹配的數目
-i忽略大小寫
-n顯示匹配文本所在行的行號
-v反選,輸出不匹配行的內容
-r遞歸匹配查找
-A n除了列出匹配行之外,還列出后面的 n 行
-B n除了列出匹配行之外,還列出前面的 n 行
--color=auto將輸出中的匹配項設置為自動顏色顯示

4)實例:

2.使用正則表達式

1)正則表達式引擎

grep 支持三種正則表達式引擎,分別用三個參數指定:

-GPOSIX 基本正則表達式,BRE
-EPOSIX 擴展正則表達式,ERE
-P

Perl 正則表達式,PCRE

2)使用基本正則表達式,BRE

grep 默認使用基本正則表達式,或者在使用的時候加上 -G 參數

① 位置

例:

查找 /etc/group 文件中以 "root" 為開頭的行

② 數量

例:

匹配以 'z' 開頭以 'o' 結尾的所有字符串

匹配以 'z' 開頭以 'o' 結尾,中間包含一個任意字符的字符串

匹配以'z'開頭,以任意多個'o'結尾的字符串

注:\n 是換行符

③ 選擇

特殊符號及說明

[:alnum:]

代表英文大小寫字母及數字,即:0-9, A-Z, a-z
[:alpha:]代表英文大小寫字母,即:A-Z, a-z
[:digit:]代表數字,即:0-9
[:lower:]代表小寫字母,即:a-z
[:upper:]代表大寫字母,即:A-Z
[:punct:]代表標點符號,即:" ' ? ! ; : # $ 等
[:cntrl:]代表鍵盤上面的控制按鍵,包括:CR, LF, Tab, Del 等
[:print:]代表任何可以被列印出來的字符
[:blank:]代表空白鍵與 [Tab] 按鍵
[:graph:]除了空白字節(空白鍵與 [Tab] 鍵)外的其他所有按鍵
[:space:]代表任何會產生空白的字符,包括:空白鍵, [Tab], CR 等
[:xdigit:]代表 16 進位的數字類型,包括: 0-9, A-F, a-f 的數字與字節

例:

匹配所有的小寫字母

匹配所有的數字

匹配所有的數字

匹配所有的小寫字母

匹配所有的大寫字母

匹配所有的字母和數字

匹配所有的字母

3)使用擴展正則表達式,ERE

通過 grep 使用擴展正則表達式需要加上 -E 參數,或使用 egrep

① 數量

例:

只匹配 "zo"

匹配以 "zo" 開頭的所有單詞

②?選擇

例:

匹配 "www.baidu.com" 和 "www.google.com"

匹配不包含 "baidu" 的內容

注:. 符號有特殊含義,所以需要轉義

【sed 流編輯器】

sed 工具是用于過濾和轉換文本的流編輯器,與 vim、emacs、geditdeng等編輯器不同的是,sed 是一個非交互式的編輯器。

本文僅介紹 sed 的基本操作,更多內容參考以下鏈接:sed 簡明教程、sed 單行腳本快速參考、sed完全手冊

1.sed 命令基本格式:sed [選項] [執行命令] [輸入文件]

2.常用參數:

-n安靜模式,只打印受影響的行,默認打印輸入數據的全部內容
-e用于腳本添加多個執行命令一次執行,在命令行中執行多個命令不需要加
-f filename指定執行 filename 文件中的命令
-r使用擴展正則表達式,默認為標準正則表達式
-i將直接修改輸入文件內容,而不是打印到標準輸出設備

3.執行命令格式:

1)[n1][,n2] command [作用范圍]

2)[n1][~step] command [作用范圍]

n1、n2 表示輸入內容的行號,它們之間為 ,逗號表示從 n1 到 n2 行,~波浪號表示從 n1 開始以 step 為步進的所有行,command 為執行動作。

4.常見執行命令

s行內替換
c整行替換

a

插入到指定行的后面
i插入到指定行的前面
p打印指定行,通常與 -n 參數配合使用
d刪除指定行

5.實例

1)找一個操作用的文件

2)打印 2-5 行

3)打印奇數行

4)將輸入文本中 "root" 全局替換為 "test",并只打印替換的那一行

5)行間替換

找出 root 的那一行并計算行號

將 root 替換為 www.root.com

【awk 文本處理語言】

1.概述

AWK 是一種優良的文本處理工具,是 Linux 中現有的功能最強大的數據處理引擎之一,其使用的 AWK 程序設計語言,又叫樣式掃描和處理語言。它允許創建簡短的程序,通過程序讀取輸入文件、為數據排序、處理數據、對輸入執行計算以及生成報表等等。簡單地說,AWK 是一種用于處理文本的編程語言工具。

awk 所有的操作都是基于 pattern(模式)—action(動作) 對 來完成的,其形式為:pattern {action}

如同很多編程語言一樣,它將所有的動作操作用一對 {} 花括號包圍起來,其中 pattern 通常是表示用于匹配輸入的文本的“關系式”或“正則表達式”,action 則是表示匹配后將執行的動作。

在一個完整 awk 操作中,模式與動作可以只有其中一個。如果沒有 pattern,則默認匹配輸入的全部文本;如果沒有 action,則默認為打印匹配內容到屏幕。

awk 處理文本的方式,是將文本分割成一些“字段”,然后再對這些字段進行處理,默認情況下,awk 以空格作為一個字段的分割符,也可以任意指定分隔符。

本文僅介紹 awk?的基本操作,更多內容參考以下鏈接:awk 程序設計語言、awk 簡明教程、awk 用戶指南

?

2.awk 命令基本格式:awk [-F fs] [-v var=value] [-f prog-file | 'program text'] [file...]

-F 參數用于預先指定字段分隔符,-v 參數用于預先為 awk 程序指定變量,-f 參數用于指定 awk 命令要執行的程序文件,或者在不加 -f 參數的情況下直接將程序語句放在這里,最后為 awk 需要處理的文本輸入,且可以同時輸入多個文本文件。

3.awk 常用內置變量

FILENAME

當前輸入文件名,若有多個文件,則只表示第一個。如果輸入是來自標準輸入,則為空字符串
$0當前記錄的內容
$NN表示字段號,最大值為NF變量的值
FS字段分隔符,由正則表達式表示,默認為" "空格
RS輸入記錄分隔符,默認為"\n",即一行為一個記錄
NF當前記錄字段數
NR已經讀入的記錄數
FNR當前輸入文件的記錄數
OFS輸出字段分隔符,默認為" "空格
ORS輸出記錄分隔符,默認為"\n"

4.實例

存在一文檔

1)使用 awk 將內容打印到終端

2)將 test 的第一行的每個字段單獨顯示為一行

注:在學習和使用 awk 的時候,應盡可能將其作為一門程序語言來理解,這樣將會使你學習更容易,所以初學階段在練習 awk 時應該盡量按照分多行按照一般程序語言的換行和縮進來輸入,而不是全部寫到一行。

總結

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

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