一:整理正則表達式
正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。它由一些普通字符和一些元字符(metacharacters)組成。普通字符包括大小寫的字母和數字,而元字符則具有特殊的含義。
主要常用的有:
元字符 | 功能 | 元字符 | 功能 |
^ | 匹配字符串的開始位置 | $ | 匹配字符串的結束位置 |
. | 匹配任意單個字符 | * | 匹配子表達式0次或n次 |
+ | 匹配子表達式一次或n次 | {n} | 匹配n次 |
{n,} | 至少匹配n次 | {n,m} | 匹配n-m次 |
? | 匹配子表達式一次或0次 | () | 將括號里面的表達式定義為組 |
[xyz] | 匹配xyz任意一個字符 | [a-Z] | 匹配指定字符范圍的任意一個 |
[^a-Z] | 匹配不在范圍的任意字符 | | | 或 |
二:grep使用(正則表達式及字符處理)
目標文件/etc/passwd,使用grep命令或egrep
1.顯示出所有含有root的行:
2.輸出任何包含bash的所有行,還要輸出緊接着這行的上下各兩行的內容:
3. 顯示出有多少行含有nologin。
4.顯示出那些行含有root,並將行號一塊輸出。
5.顯示出文件中
6.新建用戶
abominable
abominate
anomie
atomize
編寫正則表達式,將他們匹配出來
7.建四個用戶
Alex213sb
Wpq2222b
yH438PIG
egon666
egon
過濾出用戶名組成是字母+數字+字母的行
8.顯示出/etc目錄下所有包含root的文件名
9. 過濾掉/etc/ssh/sshd_config內所有注釋和所有空行
三:Sed使用:以/etc/passwd文件為模板
1,刪除文件每行的第一個字符。
2,刪除文件每行的第二個字符。
3,刪除文件每行的最后一個字符。
4,刪除文件每行的倒數第二個字符。
5,刪除文件每行的第二個單詞。
6,刪除文件每行的倒數第二個單詞。
7,刪除文件每行的最后一個單詞。
8,交換每行的第一個字符和第二個字符。
9,交換每行的第一個字符和第二個單詞。
10,交換每行的第一個單詞和最后一個單詞。
11,刪除一個文件中所有的數字。
12,刪除每行開頭的所有空格。
13,用制表符替換文件中出現的所有空格。
14,把所有大寫字母用括號()括起來。
15,打印每行3次。
16,只顯示每行的第一個單詞。
17,打印每行的第一個單詞和第三個單詞。
18,用命令獲取格式為 mm/yy/dd 的日期格式,結合管道,將其換成 mm;yy;dd格式