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 ":"
擷取結果示例:
用途:對於分隔符不規範的文字進行擷取,特點是功能強大,語法比cut命令複雜。root:0:0
oracle:500:500
grid:501:500
awk '條件型別1條件型別2 ...' filename
awk的內建變數:
awk的邏輯運算子:nf 每一行($0)擁有的字段總數
nr 目前awk所處理的是「第幾行」資料
fs 目前的分隔字元,預設是空格鍵
>, <, >=, <=, ==, !=
例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可以將資料進行替換、刪除、新增、選取特定行。
例8:顯示行號並列印出/etc/hosts,刪除檔案的前兩行。-n 只有經過sed處理的才顯示(預設顯示全部)
-e 直接在命令列模式上進行sed的動作編輯
-f 將sed的動作寫入乙個檔案,然後-f filename執行filename中的sed命令
-r 支援擴充套件型正規表示式語法(預設是基礎正規表示式語法)
-i 直接修改讀取的檔案內容,而不是預設的螢幕輸出結果
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系統的任督二脈
正規表示式就是處理字串的方法,它是以行為單位來進行字串的處理行為,正規表示式通過一些特殊符號的輔助,可以讓使用者輕易達到查詢 刪除 替換某特定字串的處理程式。正規表示式基本上是一種 表示法 只要工具程式支援這種表示法,那麼該工具程式就可以用來作為正規表示式的字串處理之用。正規表示式只是處理字串的一種...
摒棄「揮刀自宮」,努力打通成功的「任督二脈」
摒棄 揮刀自宮 努力打通成功的 任督二脈 塞林金庸 中寫到武林秘笈 葵花寶典 時有句話 欲練神功,揮刀自宮 它所揭示出來的某種境遇非常耐人尋味,可以挪用到許多地方。比如,現實生活中,很多人在那兒感嘆 要想成點事,就必須先墮落 要敢於豁出去,要有股子狠勁 要下得了手,不能有婦人之仁 餓死膽小的,撐死膽...
鋼鐵企業資訊化的「任督二脈」
中國傳統醫學中,任督二脈將身體內部系統隔絕為三個部分,是人體陰陽溝通迴圈的主要渠道,打通後,內力將融會貫通,綿綿不絕,故曰 任督通則百脈皆通 當使用某個部位的動作時,相當於增加了兩倍的功力,而且內力迴圈,生生不息。在武俠世界中,練武之人如果吃了靈丹或被高人打通任督二脈後,就會身輕如燕,功力大增,晉公...