任督二脈之Shell中的正規表示式

2021-09-06 23:12:47 字數 2853 閱讀 6700

vbird說學習linux,掌握了shell和正則就相當於打通了任督二脈,此後能力的成長才會突飛猛進。

shell的基礎學習之前已經總結了一篇部落格:

本文將總結shell中的正規表示式及常用的字元處理命令,為打通任督二脈奠定基礎^_^。

基礎正規表示式舉例說明

字元擷取命令

字元處理命令

*,.,\,^word,word$,[list],[^list],[n1-n2],\,\

例1:簡易判斷日期格式

比如:2015-05-11,只是簡單判斷數字的格式。

^[0-9]\-[0-9]\-[0-9]\$

比如:192.168.1.100,只是簡單判斷數字的格式。

[0-9]\\.[0-9]\\.[0-9]\\.[0-9]\

以字母開頭的行:

grep --color=auto "^[a-z,a-z]" 1.txt

不是以字母開頭的行:

grep --color=auto "^[^a-z,a-z]" 1.txt

用途:對於分隔符規範的文字進行特定擷取某些列,特點是簡單易用。

例4:cut截取出使用者名稱以及對應的uid,gid,過濾掉包含'/sbin'的行。

grep -v "/sbin" /etc/passwd | cut -f 1,3,4 -d ":"

擷取結果示例:

root:0:0

oracle:500:500

grid:501:500

用途:對於分隔符不規範的文字進行擷取,特點是功能強大,語法比cut命令複雜。

awk '條件型別1條件型別2 ...' filename
awk的內建變數:

nf 每一行($0)擁有的字段總數

nr 目前awk所處理的是「第幾行」資料

fs 目前的分隔字元,預設是空格鍵

awk的邏輯運算子:

>, <, >=, <=, ==, !=

例5:查詢pmon程序的pid。

ps -ef | grep pmon | grep -v grep | awk ''

例6:列印出/etc/passwd中uid<3的使用者和他們的uid。

cat /etc/passwd | awk 'begin $3 < 3 '

注:注意begin在這裡的用途,沒有begin第一行顯示會不正確。

例7:截取出系統根目錄的磁碟空間使用率

df -h | awk ''|cut -f 1 -d "%"

sed可以將資料進行替換、刪除、新增、選取特定行。

-n 只有經過sed處理的才顯示(預設顯示全部)

-e 直接在命令列模式上進行sed的動作編輯

-f 將sed的動作寫入乙個檔案,然後-f filename執行filename中的sed命令

-r 支援擴充套件型正規表示式語法(預設是基礎正規表示式語法)

-i 直接修改讀取的檔案內容,而不是預設的螢幕輸出結果

例8:顯示行號並列印出/etc/hosts,刪除檔案的前兩行。

nl /etc/hosts | sed '1,2d'

例9:把/etc/hosts檔案中的jy-db全部替換為alfred-db顯示出來

sed -e 's/jy-db/alfred-db/g' /etc/hosts

注:此處不寫-e引數也可以,如果兩個及以上sed命令需要每個前面都寫-e引數。

例10:直接修改/etc/hosts檔案,在檔案的第2行下插入新的一行「192.168.1.100 jy-db」

sed -i '2a 192.168.1.100 jy-db' /etc/hosts

用途:對結果進行排序顯示。

du -sk * | sort -rn

sort -t ":" -k "3,3" /etc/passwd

sort -n -t ":" -k "3,3" /etc/passwd

用途:統計結果行,單詞,字元的數量。

統計行wc -l

例11:統計oracle的使用者程序數

ps -ef | grep local=no | grep -v grep | wc -l

統計單詞wc -w

例12:統計/etc/issue檔案的單詞數

wc -w /etc/issue

統計字元wc -m

例13:統計/etc/issue檔案的字元數

wc -m /etc/issue

正規表示式 Linux系統的任督二脈

正規表示式就是處理字串的方法,它是以行為單位來進行字串的處理行為,正規表示式通過一些特殊符號的輔助,可以讓使用者輕易達到查詢 刪除 替換某特定字串的處理程式。正規表示式基本上是一種 表示法 只要工具程式支援這種表示法,那麼該工具程式就可以用來作為正規表示式的字串處理之用。正規表示式只是處理字串的一種...

摒棄「揮刀自宮」,努力打通成功的「任督二脈」

摒棄 揮刀自宮 努力打通成功的 任督二脈 塞林金庸 中寫到武林秘笈 葵花寶典 時有句話 欲練神功,揮刀自宮 它所揭示出來的某種境遇非常耐人尋味,可以挪用到許多地方。比如,現實生活中,很多人在那兒感嘆 要想成點事,就必須先墮落 要敢於豁出去,要有股子狠勁 要下得了手,不能有婦人之仁 餓死膽小的,撐死膽...

鋼鐵企業資訊化的「任督二脈」

中國傳統醫學中,任督二脈將身體內部系統隔絕為三個部分,是人體陰陽溝通迴圈的主要渠道,打通後,內力將融會貫通,綿綿不絕,故曰 任督通則百脈皆通 當使用某個部位的動作時,相當於增加了兩倍的功力,而且內力迴圈,生生不息。在武俠世界中,練武之人如果吃了靈丹或被高人打通任督二脈後,就會身輕如燕,功力大增,晉公...