1. 程式人生 > >2018-1-15 Linux學習筆記

2018-1-15 Linux學習筆記

oot txt str 學習 ima 處理 inittab sha 要求

9.1 正則介紹grep(上)

正則就是一串有規律的字符串.在很多文本編輯器或其他工具裏,正則表達式通常被用來檢索和/或替換那些符合某個模式的文本內容.

其實正則表達式,只是一種思想,一種表示方法。只要我們使用的工具支持表示這種思想那麽這個工具就可以處理正則表達式的字符串,常用的工具有grep, sed, awk.

grep語法:
grep [-cinvABC] ‘word‘ filename
-c : 打印符合要求的行數
-i : 忽略大小寫
-r : 遍歷所有子目錄
-n : 在輸出符合要求的行的同時連同行號一起輸出
-v : 打印不符合要求的行
-A : 後跟一個數字(有無空格都可以),例如–A2則表示打印符合要求的行以及下面兩行

-B : 後跟一個數字,例如–B2 則表示打印符合要求的行以及上面兩行
-C : 後跟一個數字,例如–C2 則表示打印符合要求的行以及上下各兩行

9.2/9.3 grep(中)(下)

grep/egrep示例
grep -n ‘root‘ /etc/passed ----->過濾出所有包含root的行
grep -nv ‘nologin‘ /etc/passwd ----->過濾出所有不包含nologin的行
grep ‘[0-9]‘ /etc/inittab ----->過濾出所有包含數字的行
grep -v ‘[0-9]‘ /etc/inittab ----->過濾出所有不包含數字的行

grep -v ‘^ #‘ test.txt ----->把所有以‘#’開頭的行去除
grep -v ‘^#‘ test.txt|grep -v ‘^$‘ ----->去除所有以‘#’開頭的行和空行
grep ‘^[^a-zA-Z]‘ test.txt ----->過濾出所有不是以a-zA-A字符開頭的行
grep ‘r.o‘ test.txt ----->把r和o之間有一個任意字符的行過濾出來,其中.表示任意一個字符
grep ‘oo*‘ test.txt ----->\把包含零個或多個oo字符的行過濾出來
grep ‘.*‘ test.txt -----> .把所有包含零個或多個任意字符(空行也包括)的行過濾出來****
grep ‘o{2}‘ /etc/passwd ----->過濾出包含有兩個o 即‘oo‘的行
egrep ‘o{2}‘ /etc/passwd ----->過濾出包含有兩個o 即‘oo‘的行
egrep ‘o+‘ /etc/passwd ----->篩選含有一個或一個以上o字符串的行
egrep ‘oo?‘ /etc/passwd ----->篩選含有零個或一個oo字符串的行
egrep ‘root|nologin‘ /etc/passwd ----->篩選出含有root或者nologin字符串的行
egrep ‘(oo){2}‘ /etc/passwd ----->篩選出含有2個oo字符串的行

註意: ^放在[]外面和裏面的含義是不同的,放外面表示以..開頭;放裏面是取非之意,例如[^a]表示除a字符之外的字符.
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片

2018-1-15 Linux學習筆記