一:整理正則表達式正則表達式
正則表達式是對字符串操做的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個「規則字符串」,這個「規則字符串」用來表達對字符串的一種過濾邏輯。它由一些普通字符和一些元字符(metacharacters)組成。普通字符包括大小寫的字母和數字,而元字符則具備特殊的含義。bash
主要經常使用的有:ssh
元字符 | 功能 | 元字符 | 功能 |
^ | 匹配字符串的開始位置 | $ | 匹配字符串的結束位置 |
. | 匹配任意單個字符 | * | 匹配子表達式0次或n次 |
+ | 匹配子表達式一次或n次 | {n} | 匹配n次 |
{n,} | 至少匹配n次 | {n,m} | 匹配n-m次 |
? | 匹配子表達式一次或0次 | () | 將括號裏面的表達式定義爲組 |
[xyz] | 匹配xyz任意一個字符 | [a-Z] | 匹配指定字符範圍的任意一個 |
[^a-Z] | 匹配不在範圍的任意字符 | | | 或 |
二:grep使用(正則表達式及字符處理)atom
目標文件/etc/passwd,使用grep命令或egrepspa
1.顯示出全部含有root的行:3d
2.輸出任何包含bash的全部行,還要輸出緊接着這行的上下各兩行的內容:blog
3. 顯示出有多少行含有nologin。ci
4.顯示出那些行含有root,並將行號一塊輸出。字符串
5.顯示出文件中get
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格式