shell正規表示式

2021-08-20 21:34:07 字數 2801 閱讀 6735

一、grep

1.grep概述

文字過濾命令:grep是一種文字搜尋工具,根據使用者指定的「模式」對目標文字進行匹配檢查,列印匹配到的行;

2.grep匹配字元

-e  ##擴充套件正規表示式

grep root passwd   ##模糊過濾root字元

grep -e "\grep -e "\" passwd  ##精確過濾以root字元

grep -e -i "\" passwd  ##忽略大小寫過濾root字元

grep -e -i "^\" passwd ##忽略大小寫過濾以root字元開頭的行

grep -e -i "\$" passwd ##忽略大小寫過濾以root字元結尾的行

grep -e  "root|root" passwd ##模糊過濾root和root字元

3.grep匹配字元出現次數

grep -e "x.." prc  ##x後至少2個字元

grep -e "x..\>" prc  ##x後2個字元結尾

grep -e "x..y\>" prc  ##x..y結尾ie

grep -e "\" prc  ##x開頭,2個字元,y結尾

grep -e "x*y" prc  ##xy之間x出現任意次

grep -e  "x?y" prc  ##xy之間x出現0-1次

grep -e "\grep -e "\grep -e "\grep -e "\

4.用grep編輯指令碼ip_show.sh

二、sed

1.sed概述

原理:處理時,把當前處理的行儲存在「模式空間」(臨時緩衝區),符合模式條件的處理,不符合條件的不處理,處理完成後把緩衝區內容送往螢幕;接著處理下一行,不斷重複,直至檔案結束;

2.p模式(顯示)

sed -n '/#/p' fstab  ##顯示檔案帶#的行

sed -n '/#/p' fstab -i fstab  ##將顯示結果覆蓋掉原檔案

cat -n fstab | sed -ne '3p;6p;8p'  ##顯示檔案的3,6,8行

cat -n fstab | sed -ne '1,3!p'  ##不顯示檔案的1-3行

3.d模式(刪除)

sed '1,4d' fstab   ##刪除檔案的1、4行

sed '/^#/d' fstab  ##刪除檔案以#開頭的行

sed '/^uuid/!d' fstab  ##除了以uuid開頭的行都刪除

4.a模式(新增)

sed '/^uuid/a hello' fstab  ##在以uuid開頭的那一行後插入hello行

sed '/^uuid/a hello\ntest' fstab  ##在以uuid開頭的那一行後插入2行

5.i模式(插入)

sed '/^uuid/i hello' fstab  ##在以uuid開頭的那一行前插入hello行

6.c模式(替換)

sed '/^uuid/c hello' fstab  ##將以uuid開頭的那一行替換成hello行

練習指令碼,改變http服務的介面

##以:為分隔符,處理前列印 name ,列印第1列

awk -f : 'beginend' passwd

##以:為分隔符,處理前列印 name ,列印第1列,處理後列印行數(nf列)

awk -f : '/bash$/' passwd

##以:為分隔符,列印以bash結尾行的第7列

awk -f : '/bash$/' passwd

##以:為分隔符,列印以bash結尾行

awk -f : 'nr==3' passwd

##以:為分隔符,列印第3行

awk -f : 'beginnr<=3&&nr>=2' passwd

##以:為分隔符,處理前列印 name ,列印2-3行的第1個字元

練習:1.列印能登陸系統且家目錄不是/home的使用者個數

2.列印裝置eth0的ip

awk -f = '/ipaddr/' /etc/sysconfig/network-scripts/ifcfg-br0

或者ifconfig br0 | awk -f " " '/inet\ /'

shell正規表示式

句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...

shell正規表示式

句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...

shell 正規表示式

一 從頭開始 echo the book sed n the p 二 結尾 三 聯合定位 this is a test 四 點字元 用於匹配除換行符之外的任何乙個單一字元 五 字元類 定義一類字元,用於匹配文字模式中的某一位置 例如 echo n ch at p data the cat is sl...