一、作業(練習)內容:
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結尾的行
4、顯示/etc/passwd文件中的兩位數或三位數
5、顯示`netstat -tan`命令結果中以‘LISTEN’後跟0個、1個或者多個空白字符結尾的行
或者:
6、添加用戶bash、testbash、basher以及nologin用戶(nologin用戶的shell爲/sbin/nologin);而後找出/etc/passwd文件中用戶名與其shell名相同的行
7、顯示當前系統上root、centos或者user1用戶的默認shell和UID (請事先創建這些用戶,若不存在)
8、找出/etc/rc.d/init.d/functions文件中某單詞(單詞中間可以存在下劃線)後面跟着一組小括號的行
9、使用echo輸出一個路徑,而後egrep找出其路徑基名;進一步的使用egrep取出其目錄名
10、找出ifconfig命令執行結果中1-255之間的數字