明年做那些網(wǎng)站致富網(wǎng)站優(yōu)化包括哪些
目錄
引言
一、正則表達(dá)式基礎(chǔ)
(一)字符匹配
1.基本字符
2.特殊字符
3.量詞
4.邊界匹配
(二)進(jìn)階用法
1.組與引用
2.選擇
二、命令之-----grep
(一)基礎(chǔ)用法
(二)高級用法
三、命令之-----sed
(一)基本用法
1.打印功能
2.插入內(nèi)容
(二)查找替換
(三)變量
(四)高級用法
四、命令之-----awk
(一)基本介紹
(二)基本用法
(三)變量
(四)正則匹配
(五)line ranges:行范圍
(六)條件判斷
(六)數(shù)組
文本實(shí)戰(zhàn)
1.過濾IP地址
2.統(tǒng)計(jì)網(wǎng)絡(luò)連接狀態(tài)
引言
正則表達(dá)式(Regular Expression,簡寫為regex或regexp)是一種用于文本搜索、匹配和替換的強(qiáng)大工具。它定義了一種字符串模式,使得我們可以通過這種模式來查找、驗(yàn)證或提取符合特定規(guī)則的文本片段。
在計(jì)算機(jī)科學(xué)和文本處理領(lǐng)域,正則表達(dá)式(Regular Expression)無疑是一種強(qiáng)大的工具。它為我們提供了一種簡潔而富有表現(xiàn)力的方式來搜索、替換或提取符合特定模式的文本片段。無論是在編程開發(fā)、數(shù)據(jù)清洗、網(wǎng)絡(luò)爬蟲還是日志分析中,正則表達(dá)式的應(yīng)用都無處不在。
一、正則表達(dá)式基礎(chǔ)
(一)字符匹配
1.基本字符
直接寫出即可匹配該字符本身,例如?a?匹配字符 "a"。
grep是一個(gè)全局搜索并打印匹配模式的行的命令。等下會(huì)講到
2.特殊字符
. | 匹配任意單個(gè)字符,可以是一個(gè)漢字 |
[] | 匹配指定范圍內(nèi)的任意單個(gè)字符 |
[^] | 匹配指定范圍外的任意單個(gè)字符,示例:[^zhou][^a.z][a.z] |
[:alnum:] | 字母和數(shù)字 |
[:alpha:] | 代表任何英文大小寫字符,亦即A-Z,a-z |
[:lower:] | 小寫字母,示例:[[:lower:]],相當(dāng)于[a-z] |
[:upper:] | 大寫字母 |
[:blank:] | 空白字符(空格和制表符) |
[:space:] | 包括空格、制表符(水平和垂直)、換行符、回車符等各種類型的空白,比[:blank:]包含的范圍廣 |
[:cntrl:] | 不可打印的控制字符(退格、刪除、警鈴...) |
[:digit:] | 十進(jìn)制數(shù)字 |
[:xdigit:] | 十六進(jìn)制數(shù)字 |
[:graph:] | 可打印的非空白字符 |
[:print:] | 可打印字符 |
[:punct:] | 標(biāo)點(diǎn)符號 |
\w | #匹配單詞構(gòu)成部分,等價(jià)于[_[:alnum:]] |
\W | #匹配非單詞構(gòu)成部分,等價(jià)于[^_[:alnum:]] |
\S | #匹配任何非空白字符。等價(jià)于[^\f\n\r\t\v]。 |
\s | #匹配任何空白字符,包括空格、制表符、換頁符等等。等價(jià)于[\f\n\r\t\v] |
\d | 數(shù)字字符集,等同于?[0-9],如\d+可以匹配一個(gè)或多個(gè)連續(xù)的數(shù)字。 |
以前四個(gè)為例
.? :表示匹配單個(gè)字符
[ ]:匹配指定范圍內(nèi)的任意單個(gè)字符
[^]:匹配指定范圍外的任意單個(gè)字符
[:alnum:]:字母和數(shù)字
3.量詞
? | 前一個(gè)元素出現(xiàn)0次或1次 | 如 colou?r 可以匹配 "color" 或 "colour" |
* | 前一個(gè)元素出現(xiàn)0次或多次 | 如 a*b 可以匹配 "b"、"ab"、"aab" 等 |
+ | 前一個(gè)元素至少出現(xiàn)1次 | 如 a+b 可以匹配 "ab"、"aab",但不匹配 "b" |
{n} | 前一個(gè)元素精確出現(xiàn)n次 | 如 a{3} 只能匹配 "aaa" |
{n,} | 前一個(gè)元素至少出現(xiàn)n次 | 如 a{2,} 可以匹配 "aa"、"aaa" 等 |
{n,m} | 前一個(gè)元素最少出現(xiàn)n次 | 最多出現(xiàn)m次,如 a{2,4} 匹配 "aa"、"aaa" 和 "aaaa" |
?的用法
*的用法
+的用法
{n,m}的用法
4.邊界匹配
^ | 匹配字符串的開始位置 | 如?^Hello?只匹配以 "Hello" 開頭的字符串 |
$ | 匹配字符串的結(jié)束位置 | 如?World$?只匹配以 "World" 結(jié)尾的字符串 |
\b | 匹配單詞邊界 | 確保前后為非單詞字符和單詞字符的交界處 |
^的用法
$的用法
\b的用法
\b主要用于位置錨定,即精確地界定匹配的模式必須是獨(dú)立的單詞,而不是作為其他單詞的一部分。
(二)進(jìn)階用法
1.組與引用
() | 捕獲分組 | 允許對內(nèi)部模式進(jìn)行分組,并可以引用捕獲的內(nèi)容 |
2.選擇
| | 表示或操作 | 匹配左右兩邊的任何一個(gè)表達(dá)式 |
符號“|”的使用
正則表達(dá)式是每個(gè)程序員都應(yīng)該掌握的重要技能之一,熟練運(yùn)用它可以極大地提高工作效率和代碼質(zhì)量。然而,需要注意的是,不同編程語言和工具對正則表達(dá)式的實(shí)現(xiàn)可能存在細(xì)微差異,請根據(jù)具體環(huán)境查閱相關(guān)文檔并進(jìn)行適配。同時(shí),編寫復(fù)雜正則時(shí)應(yīng)盡量保持清晰和簡潔,避免過度復(fù)雜的正則導(dǎo)致可讀性和維護(hù)性降低。通過不斷的實(shí)踐與學(xué)習(xí),你會(huì)發(fā)現(xiàn)正則表達(dá)式的世界充滿了無限可能!
上面是一些正則表達(dá)式的基礎(chǔ)用法。想要熟練掌握,還需要結(jié)合命令多加練習(xí),下面介紹一些在工作中必備的三個(gè)文本處理命令
grep、sed 和 awk 是Linux/Unix環(huán)境下的三個(gè)非常強(qiáng)大的文本處理工具,它們在命令行中廣泛用于搜索、替換和分析文本數(shù)據(jù)。
二、命令之-----grep
grep命令是Linux和類Unix系統(tǒng)中用于搜索文本文件中匹配特定模式的行的強(qiáng)大工具。它的全稱是Global Regular Expression Print,即全局正則表達(dá)式打印
語法為
grep [選項(xiàng)]? 表達(dá)式? 文件名
-i | 忽略大小寫進(jìn)行匹配。 |
-v | 反向選擇,打印不包含匹配項(xiàng)的行。 |
-n | 在輸出行前加上行號。 |
-c | 只顯示包含匹配項(xiàng)的行數(shù),而不是具體行內(nèi)容。 |
-w | 精確匹配整個(gè)單詞。 |
-e | 實(shí)現(xiàn)多個(gè)選項(xiàng)間的邏輯or關(guān)系 |
-f | 從文件中讀取多個(gè)搜索模式。 |
-r?;-R? | 遞歸地搜索目錄下的所有文件。r不處理軟鏈接R處理軟鏈接 |
-l | 僅列出包含匹配行的文件名。 |
-m | 最多顯示count個(gè)匹配行。 |
-o | 只顯示匹配內(nèi)容 |
-q | 靜默輸出,不顯示任何內(nèi)容。一般在寫腳本的時(shí)候使用 |
-E | 指定一個(gè)正則表達(dá)式模式。 |
(一)基礎(chǔ)用法
grep的基礎(chǔ)用法就是匹配已知字符
例如下圖所示
還可以進(jìn)行組合,比如查看一個(gè)目錄下,有哪些文件包含匹配的字符串
使用grep? -lr? 需要匹配的內(nèi)容? 目錄
-o:表示只顯示匹配的內(nèi)容
-e:匹配多個(gè)內(nèi)容,用-e連接起來
-m:最多顯示指定的匹配行數(shù)
-v:反選,顯示匹配內(nèi)容之外的內(nèi)容
-f:處理兩個(gè)文件相同內(nèi)容 把第一個(gè)文件作為匹配條件
-w:精準(zhǔn)匹配單詞
(二)高級用法
與正則表達(dá)式相結(jié)合使用,一般使用正則表達(dá)式時(shí),大多數(shù)字符都具有特殊含義,所以在命令行中需要進(jìn)行轉(zhuǎn)譯,或者加 -E 使用擴(kuò)展正則,支持更豐富的正則表達(dá)式特性
例如匹配ip地址,子網(wǎng)掩碼和廣播地址
這個(gè)時(shí)候,我們只需要加上-E開啟擴(kuò)展正則就無需進(jìn)行轉(zhuǎn)譯,可以直接匹配
結(jié)合| 就無需使用-e進(jìn)行字符串關(guān)聯(lián)
使用grep統(tǒng)計(jì)當(dāng)前主機(jī)有多少普通用戶可以登錄
總之,grep -E 提供了比基本正則表達(dá)式更多的靈活性和功能,使得能夠編寫更復(fù)雜、更精確的搜索模式。
三、命令之-----sed
相對于grep命令來說,sed的命令就更加強(qiáng)大了一些。
sed(Stream Editor)是一種流編輯器,它逐行處理文本文件或輸入流,并能夠進(jìn)行搜索、替換、刪除、插入等操作。
Sed是從文件或管道中讀取一行,處理一行,輸出一行;再讀取一行,再處理一行,再輸出一行,直到最后一行。每當(dāng)處理一行時(shí),把當(dāng)前處理的行存儲(chǔ)在臨時(shí)緩沖區(qū)中,稱為模式空間(PatternSpace),接著用sed命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行,這樣不斷重復(fù),直到文件末尾。
sed命令,一般用于腳本當(dāng)中
(一)基本用法
sed的基本語法為
sed? [選項(xiàng)]? ‘語法選項(xiàng)’? 文件名
-e | 用指定命令或者腳本來處理輸入的文本文件只有一個(gè)操作命令時(shí)省略, 一般在執(zhí)行多個(gè)操作命令使用 |
-f | 用指定的腳本文件來處理輸入的文本文件 |
-n | 不輸出模式空間內(nèi)容到屏幕,取消默認(rèn)的打印行為, 只有在命令中顯式使用 p 命令時(shí)才會(huì)打印行。 |
? ? ? ? ? ? ?-r 或?-E | 使用擴(kuò)展正則表達(dá)式 |
-h | 顯示幫助 |
-i | 直接修改目標(biāo)文件 |
-i.xxx | 備份文件并原處編輯。xxx為自定義后綴名,可以隨意設(shè)置 |
-s | 將多個(gè)文件視為獨(dú)立文件,而不是單個(gè)連續(xù)的長文件流 |
語法選項(xiàng)(模式空間操作):
s/old/new/flags | 替換命令,用 new 替換每一行首次出現(xiàn)的 old,可選的標(biāo)志包括 g:全局替換,在一行中所有匹配的地方都進(jìn)行替換。 i:忽略大小寫。 p:打印出已替換的行。 |
d | 刪除命令,刪除匹配當(dāng)前模式空間內(nèi)容的行。? |
a\ text | 在當(dāng)前行后添加文本 text,新行以反斜杠 \ 結(jié)束。? |
i\ text | 在當(dāng)前行前插入文本 text。 |
p | 打印當(dāng)前行(默認(rèn)行為,如果沒有 -n 參數(shù)的話)。 |
q | 退出 sed,如果后面跟著一個(gè)數(shù)字,則在處理到第 n 行之后退出。 |
c | 替換,將選定行替換為指定內(nèi)容 |
w | 保存模式匹配的行至指定文件 |
地址范圍:
number | 指定要操作的行號。 |
/regex/ | 根據(jù)正則表達(dá)式匹配的行。 |
address1, address2 | 處理從 address1 到 address2 的行。 |
1.打印功能
雖然sed本身具有打印功能,但是直接使用sed命令卻無法打印,因?yàn)閟ed的打印原理是將匹配的每一行內(nèi)容,逐行放入模式空間,并打印到屏幕上。這里沒有匹配項(xiàng),所以無法打印
而加上語法選項(xiàng)p之后會(huì)將每一行的內(nèi)容打印兩邊,這是因?yàn)?#xff0c;sed本身具有打印功能,而p選項(xiàng),是打印文件內(nèi)容,就等于將所有內(nèi)容匹配了一遍,所有sed又打印了一遍。
加上-n選項(xiàng)后,取消了自動(dòng)打印功能,所以只執(zhí)行了p功能的打印屬性
打印指定行數(shù)
2.插入內(nèi)容
a:下方插入 i:上方插入 c:指定行替換
?將其它文本的內(nèi)容插入到當(dāng)前文本中
這些都只是打印出來的內(nèi)容,真實(shí)文件是沒有改變的,想要真實(shí)修改文件,需要加-i選項(xiàng)
(二)查找替換
語法格式為? sed? [選項(xiàng)]? s/old/new/flags? 文件路徑
匹配舊內(nèi)容時(shí)支持通配符,比如將selinux永久關(guān)閉,修改配置文件
查找替換中,還有一種比較實(shí)用的用法叫后向引用
就是使用捕獲分組() 將括號中的字符串定義為一個(gè)分組,第一個(gè)括號中的內(nèi)容就是1.第二個(gè)括號中的內(nèi)容就是2,以此類推
修改httpd的配置文件中的監(jiān)聽端口
指定行數(shù)
指定需要修改的行的范圍
(三)變量
sed支持變量查找與替換
首先定義變量
語法格式為
sed??-ri ?"s/${變量名}/${變量名}/g" ?/etc/passwd
(四)高級用法
sed語法用有一些比較高級的使用方法
下面是一個(gè)語法選項(xiàng)
選項(xiàng) | 含義 |
P | 打印模式空間開端至\n內(nèi)容,并追加到默認(rèn)輸出之前 |
N | 讀取匹配到的行的下一行追加至模式空間 |
n | 讀取匹配到的行的下一行覆蓋至模式空間 |
G | 從保持空間取出的內(nèi)容追加至模式空間 |
g | 從保持空間取出的數(shù)據(jù)覆蓋至模式空間 |
H | 把模式空間中的內(nèi)容追加至保持空間 |
h | 把模式空間中的內(nèi)容覆蓋至保持空間 |
x | 把模式空間中的內(nèi)容與保持空間中的內(nèi)容進(jìn)行互換 |
d | 刪除模式空間中的行 |
D | 如果模式空間包含換行符,則刪除直到第一個(gè)換行符的模式空間中的文本,并不會(huì)讀取新的輸入行,而使用合成的模式空間重新啟動(dòng)循環(huán),如果模式空間不包含換行符,則會(huì)像發(fā)出d命令那樣啟動(dòng)正常的新循環(huán) |
n,表示讀取匹配到的行的下一行覆蓋至模式空間
打印奇數(shù)行與偶數(shù)行的方式
燒腦挑戰(zhàn)
首先需要直到語法選項(xiàng)的含義
-n:取消默認(rèn)打印
1:表示第一行
!:取反
G:從保持空間取出的內(nèi)容追加至模式空間
h:把模式空間中的內(nèi)容覆蓋至保持空間
$!:表示最后一行
d:刪除
現(xiàn)在,結(jié)合圖片解釋一下
從第一行開始匹配:1!取反,不是第一行才執(zhí)行G(從保持空間取出的內(nèi)容追加至模式空間),第一行不執(zhí)行執(zhí)行G,直接執(zhí)行h(把模式空間中的內(nèi)容覆蓋至保持空間)保持空間為行1,不符合$(最后一行)條件,刪除模式空間內(nèi)容
第二行:1!取反,不是第一行就執(zhí)行G,將保持空間取出的內(nèi)容追加至模式空間,而后執(zhí)行h,將行2與行1覆蓋至保持空間,不是最后一行,刪除模式空間內(nèi)容
第三行:1!取反,不是第一行就執(zhí)行G,將保持空間取出的內(nèi)容追加至模式空間,而后執(zhí)行h,將行3、行2、行1覆蓋至保持空間,不是最后一行,刪除模式空間內(nèi)容
以此類推,一直到最后一行,不刪除模式空間內(nèi)容,輸出到屏幕
小結(jié):sed語法一般用在腳本當(dāng)中,不需要打開文件,進(jìn)行文件修改,如果在bash環(huán)境中一般直接使用vim進(jìn)行修改,但是,處理大文件時(shí)使用sed命令會(huì)更好,因?yàn)関im需要打開文件,會(huì)占用緩存資源,sed不需要打開文件可以直修改
四、命令之-----awk
(一)基本介紹
awk 是一款強(qiáng)大的文本處理工具,它基于模式匹配和行處理的概念進(jìn)行設(shè)計(jì)。在Unix/Linux環(huán)境中,awk 通常用于對結(jié)構(gòu)化文本數(shù)據(jù)(如日志文件、表格數(shù)據(jù)等)執(zhí)行一系列操作,包括搜索、過濾、格式化輸出以及各種計(jì)算和轉(zhuǎn)換。
起源與名稱: awk 的名字來源于其三位創(chuàng)始人 Alfred Aho、Peter Weinberger 和 Brian Kernighan 的首字母組合
現(xiàn)在使用的awk命令來自gawk軟件
基本語法: awk [options] 'pattern { action }' file(s)
options:可選的命令行選項(xiàng),例如 -F 用于設(shè)置輸入字段分隔符。
pattern:一個(gè)或多個(gè)條件表達(dá)式,當(dāng)指定的模式匹配到當(dāng)前行時(shí),執(zhí)行相應(yīng)的動(dòng)作。用{}指明
action:在模式匹配成功后要執(zhí)行的操作,可以包含任意合法的Awk語句,如變量賦值、打印、循環(huán)、函數(shù)調(diào)用等。
file(s):待處理的一個(gè)或多個(gè)輸入文件名。
工作原理:
awk 將每一行輸入數(shù)據(jù)視為一條記錄,并將記錄按照指定的分隔符劃分為多個(gè)字段。對于每條記錄,它都會(huì)嘗試匹配給定的模式,如果模式匹配,則執(zhí)行相應(yīng)的動(dòng)作。默認(rèn)情況下,字段之間由空白字符(空格或制表符)分隔,但可以通過 -F 參數(shù)自定義分隔符。
內(nèi)置功能
變量:awk 提供了一系列預(yù)定義變量,如 $0 表示整個(gè)記錄,$1 到 $n 分別表示各字段,NF 表示字段數(shù),NR 表示當(dāng)前處理的記錄行號等。
BEGIN/END 塊
BEGIN 塊在讀取任何輸入之前執(zhí)行一次,常用于初始化變量或打印頭部信息。
END 塊在所有輸入處理完畢后執(zhí)行一次,適合于統(tǒng)計(jì)匯總結(jié)果或打印尾部信息。
運(yùn)算符和表達(dá)式:支持算術(shù)、比較、邏輯及正則表達(dá)式等,可以用來構(gòu)造復(fù)雜的匹配和控制流程。 流程控制:if...else 條件判斷,for 和 while 循環(huán),以及其他控制結(jié)構(gòu)。
函數(shù):內(nèi)置有多種函數(shù),如數(shù)學(xué)函數(shù)、字符串函數(shù),同時(shí)也允許用戶自定義函數(shù)。
選項(xiàng):
-v | 定義變量 |
-F | 指定分隔符 |
常見內(nèi)置變量
(二)基本用法
awk默認(rèn)以一個(gè)以上的空格為分隔符
比如以前想過濾出IP地址,需要好幾個(gè)命令堆加在一起,現(xiàn)在只需要awk一個(gè)命令就可以了
-F:指定分隔符
BEGIN/END 塊
BEGIN 塊在讀取任何輸入之前執(zhí)行一次,常用于初始化變量或打印頭部信息。
END 塊在所有輸入處理完畢后執(zhí)行一次,適合于統(tǒng)計(jì)匯總結(jié)果或打印尾部信息。
BEGIN/END必須要大寫
awk還支持標(biāo)準(zhǔn)輸入
(三)變量
awk中常見的內(nèi)置變量有以下幾種
內(nèi)置變量 | 作用 |
NR | 當(dāng)前處理的行的行號(序數(shù)) |
NF | 當(dāng)前處理的行的字段個(gè)數(shù) |
FS | 列分隔符,指定每行文本的字段分隔符,默認(rèn)為空格或制表位。與 “ -F ” 作用相同 |
OFS | 輸出內(nèi)容的列分隔符 |
RS | 行分隔符,awk從文件中讀取資料時(shí),將根據(jù)RS的定義把資料切割成許多條記錄, 而awk一次僅讀入一條記錄進(jìn)行處理。預(yù)設(shè)值是"\n" |
$0? | 當(dāng)前處理的行的整行內(nèi)容 |
$n | 當(dāng)前處理行的第n個(gè)字段(第n列) |
FILENAME | 被處理的文件名 |
NR:表示當(dāng)前處理的行的行號(序數(shù))
語法為awk 'NR==n{處理動(dòng)作}'? 文件名
例:
awk '{print $1,NR}' passwd:打印出行號
awk 'NR==2{print $1}' /etc/passwd:只取第二行的第一個(gè)字段
awk 'NR==1,NR==3{print}' passwd :打印出1到3 行
awk '(NR%2)==1{print NR,$0}' passwd:打印出函數(shù)取余數(shù)為1的行
awk '(NR%2)==0{print NR,$0}' passwd:打印出函數(shù)取余數(shù)為0行
$0:當(dāng)前處理的行的整行內(nèi)容
awk 'NR==1||NR==3{print}' passwd:打印出1和3行
awk 'NR>=3 && NR<=6{print NR,$0}' /etc/passwd :打印出大于等于第三行,小于等于第六行,也就是3-6行
FNR:將多個(gè)文件分開顯示
NF:當(dāng)前處理的行的字段個(gè)數(shù)
例:
awk -F: '{print NF}' passwd
awk -F: '{print $NF}' passwd :$NF表示最后一個(gè)字段
df|awk? ?'{print $(NF-1)}':倒數(shù)第二行
FS:列分隔符,指定每行文本的字段分隔符
RS:行分隔符,awk從文件中讀取資料時(shí),根據(jù)RS的定義把資分段, 而awk一次僅讀入一條記錄進(jìn)行處理。預(yù)設(shè)值是"\n"
OFS 輸出內(nèi)容的列分隔符($n=$n 用于激活,否則不生效,n且必須存在)
(四)正則匹配
awk同樣支持正則表達(dá)式進(jìn)行匹配
(五)line ranges:行范圍
算術(shù)操作符
x+y, x-y, x*y, x/y, x^y, x%y
比較操作符:
==, !=, >, >=, <, <=
邏輯
與:&&,并且關(guān)系
或:||,或者關(guān)系
非:!,取反
(六)條件判斷
if語句:awk的if語句也分為單分支、雙分支和多分支
單分支為if(判斷條件){執(zhí)行語句}
雙分支為if(判斷條件){執(zhí)行語句}else{執(zhí)行語句}
多分支為if(判斷條件){執(zhí)行語句}else if(判斷條件){執(zhí)行語句}else if(判斷條件){執(zhí)行語句}else if(判斷條件){執(zhí)行語句?
(六)數(shù)組
awk的數(shù)組是關(guān)聯(lián)數(shù)組(即key/value方式的hash數(shù)據(jù)結(jié)構(gòu)),索引下標(biāo)可為數(shù)值(甚至是負(fù)數(shù)、小數(shù)等),也可為字符串
1. 在內(nèi)部,awk數(shù)組的索引全都是字符串,即使是數(shù)值索引在使用時(shí)內(nèi)部也會(huì)轉(zhuǎn)換成字符串
2. awk的數(shù)組元素的順序和元素插入時(shí)的順序很可能是不相同的
文本實(shí)戰(zhàn)
1.過濾IP地址
[root@localhost ~]#ifconfig ens33|grep netmask|tr -s " "|cut -d " " -f3
192.168.83.30#ifconfig ens33:只看ens33網(wǎng)卡信息
#grep netmask:過濾包含netmask的行
#tr -s " " : 壓縮空格
#cut -d " " -f3:以空格為分隔符,取第三列[root@localhost ~]#ifconfig ens33|sed -nr 's/ .* inet (.*) netmask.*/\1/p'
192.168.83.30#ifconfig ens33:只看ens33網(wǎng)卡信息
#sed...........:
#-nr:關(guān)閉自動(dòng)打印并開啟擴(kuò)展正則
#.*表示任意字符,第一個(gè).*表示前面的空格
#inet (.*)表示inet后面的任意字符
#netmask.*表示netmask后面的任意字符;
#\1表示調(diào)用第一個(gè)括號中的內(nèi)容;
#p打印
#打印出第一個(gè)括號中的內(nèi)容,inet 后面的括號,里面的內(nèi)容就是Ip地址
#需要注意空格符號,inte后面有一個(gè)空格 (.*)后面有兩個(gè)空格 netmask[root@localhost ~]#ifconfig ens33|awk /netmask/'{print $2}'
192.168.83.30#ifconfig ens33:只看ens33網(wǎng)卡信息
#awk........
/netmask/ :找到包含netmask的行
{print $2} :打印第二列
2.統(tǒng)計(jì)網(wǎng)絡(luò)連接狀態(tài)
總結(jié):
grep、sed 和 awk是在日常工作中必不可少的操作命令,需要重點(diǎn)去掌握,而正則表達(dá)式,是實(shí)現(xiàn)文本高效處理的重要組成部分
命令名稱 | 主要功能 |
grep | 根據(jù)正則表達(dá)式搜索文件內(nèi)容,并打印匹配行。 |
sed | 對輸入流(如文件或管道的輸出)進(jìn)行逐行編輯,可以實(shí)現(xiàn)查找、替換、刪除、插入 等多種操作。 |
awk | 基于模式匹配對每一行數(shù)據(jù)進(jìn)行處理,支持更復(fù)雜的條件判斷和字段處理能力,通常 用于結(jié)構(gòu)化數(shù)據(jù)的處理。 |