1. 程式人生 > >shell腳本三——正則表達式

shell腳本三——正則表達式

大量 正則 for 首部 出現 gre 括號 單位 file

  1. shell函數:shell中允許將一組命令集合或語句形成一段可用代碼,這些代碼塊稱為shell函數。給這段代碼起個名字稱為函數名,後續可以直接調用該段代碼。
  2. 格式:fun() { 命令 }
  3. Shell正則表達式

定義:匹配字符串,為了處理大量得文本和字符串指定的一套規則和方法。

分類:基礎正則和擴展正則(+ ? | () )

正則與通配的區別:

1) 三劍客awk sed egrep都是正則

2) 文件目錄名——通配符 ; 文件內容(字符串,文本內容)——正則表達式

. 匹配任意單個字符

^ 匹配前面字符串開頭

$ 匹配前面字符串結尾

*匹配前一個字符的零個或多個

.*表示任意長度的任意字符

+表示前面的字符初選最少一次的情況

?表示前面字符出現最多一次

[ ]表示範圍內的一個字符

[.-.]匹配括號裏的任意一個字符

^[^] 匹配[^]字符之外的任意一個字符

{n,m}表示最少n次 最多m次

\>錨定單詞尾部

\<鎖定單詞首部

( )調用前面第一個分組

|

例:打印出包含某個關鍵詞的文件(關鍵詞執行腳本時接收)

#!/bin/bash

key=$1

for file in `find / -type f`

do

grep "$key" $file &>/dev/null

if [ $? -eq 0 ];then

echo $file

sleep 1

fi

done

  1. 統計系統中以.sh結尾的文件總大小,輸出結果以kb為單位

#!/bin/bash

sum=0

for size in `find /root -name "*.sh" -exec ls -l {} \; | cut -d " " -f 5`

do

let sum+=$size

done

echo "$((sum/1024))kb"

shell腳本三——正則表達式