linux grep使用以及grep使用練習

一、作業(練習)內容:

1、總結本此課程中所涉及命令的使用方法及相關示例展示

 Linux文本處理三劍客:                                                                                                                            
grep: 文本過濾工具;                                                                                                                              
  sed:文本編輯器(行);stream editor                                                                                    
  awk:文本報告生成器;Linux上awk的實現爲gawk

 

 grep 【參數】【字符串或者正則表達式】【文件名....】

     -i 忽略大小寫

     -c 顯示被匹配到的行數

     -n 輸出行號

     -v 反向選擇,即找沒有搜索字符串的行

     -o 僅顯示匹配到的內容

     -w 匹配單詞

     -A # 連同匹配行的下#行一併顯示,#代表任意數字

      -B # 連同匹配行的上#行一併顯示,#代表任意數字

     -C # 連同匹配行的上下#行一併顯示,#代表任意數字

     -R-r 遞歸搜索目錄或子目錄下匹配的字所在文件(可配合find命令

     -E 相當於egrep 支持擴展的正則表達式

     -F 相當於fgrep 不支持正則表達式

     --color對匹配的內容以顏色顯示

 

 

2、總結基本正則表達式及擴展正則表達式

 

正則表達式: 默認匹配次數:貪婪模式,儘可能多的去匹配

. 匹配任意單個字符

\.表示.本身 \逃逸符

* 匹配其前面的字符任意次可爲0

.* 任意長度的任意字符

\? 匹配其前面字符1次或0

x\{m\}:匹配其前面的字符“x”m(精確匹配)

x\{m,\}:匹配其前面的字符“x”至少m

x\{m,n\}:匹配其前面的字符“x”至少m次,至多n

\{1,\} 1次至無上限 \{0,3\}至少3

^ 錨定行首,此字符後面的任意內容必須出現在行首

$ 錨定行尾,次字符前面的任意內容必須出現在行尾

^$表示空行

[ ] 匹配指定範圍內的任意單個字符

[^ ] 匹配指定範圍外的任意單個字符

\< 其後面的任意字符必須作爲單詞的首部出現

\> 其前面的任意字符必須作爲單詞的尾部出現

\<\> 錨定單詞例如 \<root\>

純數字 [[:digit:]][0-9]

小寫字母 [[:lower:]][a-z]

大寫字母 [[:upper:]][A-Z]

大小寫字母 [[:alpha:]][a-zA-Z]

數字加字母 [[:alnum:]][0-9a-zA-Z]

空白字符 [[:space:]] 非空白字符[^[:space:]]

標點符號 [[:punct:]]

\d 匹配任何十進制數,相當於[0-9] -P選項加上

\D 匹配任何非數字字符,相當於[^0-9] -P選項加上

\s 匹配任何空白字符,

\S 匹配任何非空白字符,

\w 匹配任何字母數字字符,相當於[a-zA-Z0-9]

\W 匹配任何非字母數字字符,相當於[^a-zA-Z0-9]

\\ 匹配"\"

\( \) 分組後項引用 \1 引用第一個左括號以及與之對應的右括號所包括的所有內容。 \2 \3 …

 

擴展正則表達式中增加了幾個與正則表達式有區別的新內容:

+ 匹配其前面的字符至少1 \{1,\}正則中近似

匹配緊挨在其前面的字符0次或1 \?正則中近似

{m,n} 匹配前面字符至少m次至多n {1}表示1至無限 {0,3}表示0-3

()分組 \1 \2 \3 …

| 或者

 

3、顯示/etc/passwd文件中以bash結尾的行

wKioL1Xgfnigch5AAABpMXNAUfQ722.jpg

4、顯示/etc/passwd文件中的兩位數或三位數

wKioL1XghE_h1KApAAIrlMNQpNg696.jpg

5、顯示`netstat -tan`命令結果中以‘LISTEN’後跟0個、1個或者多個空白字符結尾的行

 

wKiom1XghWLzNO7iAACF6B70uSs768.jpg

或者:

wKioL1Xgh32CxpBjAACcuyccHUg718.jpg

 

6、添加用戶bash、testbash、basher以及nologin用戶(nologin用戶的shell爲/sbin/nologin);而後找出/etc/passwd文件中用戶名與其shell名相同的行

 

wKioL1Xgk5DSYHPEAAA5clloQQA951.jpg

wKiom1XgkXWQs7NuAAA-8qApU_8664.jpg

 wKiom1XkNfiTr-GjAAE26zu_H9w936.jpg

 

7、顯示當前系統上root、centos或者user1用戶的默認shell和UID (請事先創建這些用戶,若不存在)

wKioL1XkPOyBZB8JAADdxtc32oA334.jpg

8、找出/etc/rc.d/init.d/functions文件中某單詞(單詞中間可以存在下劃線)後面跟着一組小括號的行



9、使用echo輸出一個路徑,而後egrep找出其路徑基名;進一步的使用egrep取出其目錄名


10、找出ifconfig命令執行結果中1-255之間的數字


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章