一、正規表示式
正規表示式是用來描述字串排列和匹配模式的一種語法規則,是字串的模式分割、匹配、查詢和替換操作。
正規表示式是包含匹配,操作字串,如grep,awd,sed,而萬用字元是完全匹配,如ls,find,cp
正則的與萬用字元的不同,如正規表示式aa*,第二個a不起作用,意思是以a開頭的,而萬用字元aa*的話是以aa開頭
^$這個會匹配空白行
1這個表示以數字開頭
[^0-9]這個表示除數字以外
如果要取消某個字元的定義,則用轉義符 「\」
二、cut、awk、sed使用(主要功能)
建立使用者useradd 刪除使用者userdel
grep是行命令,cut是列命令,cut預設製表符tab
df 檢視系統分割槽的情況
cut記憶體切取:df -h |tr -s " "|cut -d " " -f 1,3
tr -s " "將空格壓縮為乙個
printf輸出格式化
printf 『輸入格式』 資料
printf『%s\t』$(cat test6.txt)
管道 | :是資料流的操作 printf不支援這個
還有乙個print命令,在乙個字元預設加上換行;printf是使用者定義,都要自己寫的
awk『條件1,條件2』檔名
條件(pattern):
一般使用關係表示式作為條件
動作(action)
格式化輸出
流程控制
df -h |awk '' 輸出df中第一列和…n與位置變數的$n不同,這裡表示第幾列,0表示
整個檔案
名位置變
量的0表示整個檔名 位置變數的
0表示整個文
件名位置
變數的n表示傳進來的變數
2、printf中的轉義符要用「 」,而不是單引號,原因是它外面已經有了
df -h|grep 「/dev/sda1」|awk 『』|cut -d 「%」 -f 1
記憶體中,名字有"/dev/sda1",擷取它的第五列(不清楚為什麼不行printf),擷取%前的資料
awk預設是空格,插表符,如果要弄:的則需以下操作:
cat /etc/passwd|awk 『begin 』 fs是內建變數符,替換掉
begin在讀取動作前執行
sed
sed 【選項】 『【動作】』 檔名
【選項】:
-n:將後面有關運算元列印在螢幕上,若沒有,則全部列印
-e:對允許輸入命令進行多條sed編輯
-i:將結果修改原檔案
【動作】:
a 追加 c一行替換 i插入 d刪除 p列印 s字元替換
sed -n 『2p』 test1
sed 『2c hello world』 test1
sed -e 『s/xy/hello/g;s/th/hello/g』 test1 唯一確認的,所以s前可以不用加入行號。
三、字元處理命令
sort、wc
1、排列命令 sort sort [選項] 檔名
【選項】 :-f 忽略大小寫 -n 以數值排列,預設字串
-r 取反排列,預設從小到大 -t 指定分隔符,預設製表符
-k n[,m] 排序範圍從第n個字段開始到m個
2、統計命令wc wc 【選項】 檔名
【選項】 :-l 行數 -w單詞數 -m字元數
0-9 ↩︎
shell 指令碼 正規表示式
字元類 character class 如上例的x和 y,它們在模式中表示乙個字元 但是取值範圍是 一類字 符中的任意乙個。數量限定符 quantifier 郵件位址的每一部分可以有乙個或多個x字元 ip位址的每一部 分 可以有1 3個y 字元位置限定符 anchor 部分,用普通字元 和 隔 開 ...
shell指令碼 正規表示式
正規表示式分為基礎正則和擴充套件正則,都是為了匹配符合預期要求的字串 只需要記住,對檔案內容或是展示文字的操作都是正則,而對目錄或檔名的操作則都是萬用字元 例如find指令 擴充套件正則包含基礎正則,而且多出了 四個指令 注意這裡的 要和管道符分開 擴充套件正則不需要像基礎正則一樣對某些符號進行轉義...
shell指令碼之正規表示式
一 基礎正規表示式例項 元字元總結 在linux系統中常見的檔案處理工具中grep和sed支援基礎正規表示式。grep命令選項 i 查詢時不區分大小寫 v 查詢時反向輸出,如查詢不包含某些字元的內容 n 表示查詢出結果後顯示行號 這三個選項可以結合使用,如 in 查詢時不區分大小寫並顯示行號。示例 ...