shell腳本—正則表達式


shell其實是一個命令解釋器,它的作用是解釋用戶輸入的命令和程序;

如果我們的命令或者應用程序不在命令行直接執行,而是通過一個程序文件來執行時,這個程序就稱為shell腳本。shell腳本里面通常內置了多條命令,有的還包含控制語句,比如if和

else的條件控制語句;這些內置在一個shell腳本中的命令通常是一次性執行完成,不會不停的返回信息給用戶,這種通過文件執行腳本的方式稱之為非交互方式;

我們可以在文本中輸入一系列的命令、控制語句和變量,這一切有機的結合起來就形成了功能強大的shell腳本;

 

(基本/擴展)正則表達式,用某種模式去匹配一類字符串的公式,它是由一串字符和元字符構成字符串。;

. 任意的一個字符;漢字等(除換行符以外)

 

*前面字符重復任意次;wang* (wan,wang,wangg,wanggg。。。),(wang)*(wang,wang...)

.*任意長度的任意字符串;

+前面字符重復一次以上;x{1,}; x xx xxx

{n,}至少n次(>=n)

 

 

 

 

{n}精確n次;\ 用於轉義字符;

 

 

 

 

{m,n}m次到n次

{,n}至多n次

前面字符0次或1次,可有可無;

^行首;(脫字符號)

 

$行尾;

 

詞首 \< 或 \b   (<,>,用於界定單詞的左邊界和右邊界)

詞尾 \> 或 \b

[]符號用於匹配方括號內出現的任意字符;[wang] 任意一個字符w a n g;\d 匹配一個數字,等價於[0-9]

 

 

 

 

 “\d”是一種Perl兼容模式的表達式,又稱作 PCRE,要想使用這種模式的匹配符,需要加上-P參數

 

[^.]除了.的其它的任意一個字符

[:alpha:]

a|bxy abxy

(a|b)xy axy 或 bxy

(expr1) (expr2) \1 \2

cut

diff

patch -b

wc

sort

uniq

head

tail

tac;cat;

more;less;paste;netstat;

` (后引號、斜引號);如,a=`ls -l`;表示把ls -l作為命令來執行,執行的結果賦值給a;

 

vim ex模式下輸入 :%s/xyz/&er/g (xyz替換成xyzer,g表示一行里替換多個xyz,不加g 則只替換一個xyz) (&,表示前面搜索出來的字符)

vim 命令模式,插入模式(a,i,o),ex模式(底行模式,vim a.sh就可以操作);

grep -o;只要數字;

擴展正則表達式grap -E 或egrep 

0-9 10-99 100-199 200-249 250-255

[0-9] [1-9][0-9] 1[0-9][0-9] 2[0-4][0-9] 25[0-5]

ifconfig |egrep -o "(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"

 

 

 

 上圖是字符串比較;

 

 判斷.sh

 創建用戶

 

 

seq(sequeue,序列),主要用來輸出序列化的東西;-s 使用指定字符串分割數字(默認\n)

 

 paste命令用戶合並文件的行;它可以合並一個文件或多個文件的行;

-d 指定各個文件在合並時,使用的分隔符;

-s 順序的合並文件,每個文件中所有內容合並為一行;

 

 

 

 

wc;word count

10行 13個單詞(以空格區別)

 

 ls |wc; wc --help;

wc -l /etc/passwd(查看多少行,查看多少個賬號)

 

 

 cut取列;sort取列,然后進行排序;

sort -t: -k3 /etc/passwd(按照字符排序)

sort -t: -k3 -n /etc/passwd(按照數字升序排列)

sort -t: -k3 -nr /etc/passwd (根據passwd中第3列,按照數字倒序排列)

 

tr (translate)主要用於刪除文件中的控制字符,或進行字符轉換;

如下圖;將空格使用';'替代;

 

cut用來從標准輸入或文本文件中剪切列或域;-d指定不同列的分割符;-f 1剪切第1域/列;

 

 

sort以行為單位對文本進行排序;-n 根據字符串數值進行排序;-r 反向輸出排序結果;

 

head 可以將一段文本的開頭的一部分輸出到標准輸出;默認前10;-n25輸出前25行;

 

 

 

 

 

 

 

 

 

 

 統計遠程主機登錄次數的前三個ip

 

 

 

 

grep;文本,行過濾工具;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM