shell腳本三——正則表達式
阿新 • • 發佈:2019-04-18
大量 正則 for 首部 出現 gre 括號 單位 file
- shell函數:shell中允許將一組命令集合或語句形成一段可用代碼,這些代碼塊稱為shell函數。給這段代碼起個名字稱為函數名,後續可以直接調用該段代碼。
- 格式:fun() { 命令 }
- 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
- 統計系統中以.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腳本三——正則表達式