目錄
一、理論
1.grep
2.sort
3.uniq
4.tr
5.cut
6.split
7.paste
二、實驗
1. grep
?編輯
?編輯
2.sort
3.uniq
?編輯
4.tr
5.cut
6.split
7.統(tǒng)計當(dāng)前主機的連接狀態(tài)
8.統(tǒng)計當(dāng)前連接主機數(shù)
9.獲取信息
一、理論
1.grep
(1)概念
grep是Linux中最常用的”文本處理工具”之一,grep與sed、awk合稱為Linux中的三劍客。
grep的全稱為:?Global search?Regular?Expression and?Print out the line
全稱中的”Global search”為全局搜索之意。
全稱中的”Regular Expression”表示正則表達式。
所以,從grep的全稱中可以了解到,grep是一個可以利用”正則表達式”進行”全局搜索”的工具,grep會在文本文件中按照指定的正則進行全局搜索,并將搜索出的行打印出來。
(2)語法格式
grep [選項]… 查找條件 目標文件
表1 grep常用選項
選項 | 功能 |
-m | 匹配#次后停止 |
-v | 顯示不被pattern匹配到的行,即取反 |
-i | 忽略字符大小寫 ?#可有可無 |
-n | 顯示匹配的行號 |
-c | 統(tǒng)計匹配的行數(shù) |
-o | 僅顯示匹配到的字符串 |
-q? | 靜默模式,不輸出任何信息 |
-A | # after, 后#行? |
-B | # before, 前#行 |
-C | # context, 前后各#行 |
-e | 實現(xiàn)多個選項間的邏輯or關(guān)系,如:grep –e ‘cat ' -e ‘dog' file |
-w | 匹配整個單詞 |
-E | 使用ERE,相當(dāng)于egrep,使用擴展正則 |
-F | 不支持正則表達式 |
-f | file 根據(jù)模式文件,處理兩個文件相同內(nèi)容 把第一個文件作為匹配條件 |
-r | 遞歸目錄,但不處理軟鏈接 |
-R | 遞歸目錄,但處理軟鏈接 |
2.sort
(1)概念
sort命令以行為單位對文件內(nèi)容進行排序,也可以根據(jù)不同的數(shù)據(jù)類型來排序
(2)語法格式
sort 選項 參數(shù)
cat file | sort 選項
表2 sort常用選項
常用選項 | 功能 |
f | 忽略大小寫,默認會大寫字母排在前面 |
b | 忽略每行前面的空格 |
n | 按照數(shù)字進行排序 |
r | 反向排序 |
u | 等同uniq,表示相同的數(shù)據(jù)僅顯示一行,去重 |
t | 指定字段分隔符,默認使用tab鍵分隔 |
k | 指定排序字段 |
o | <輸出文件>:將排序后的結(jié)果轉(zhuǎn)存至指定文件 |
3.uniq
(1)概念
uniq命令用于報告或者忽略文件中連續(xù)的重復(fù)行,常與sort命令結(jié)合使用。
(2)語法格式
uniq [選項] 參數(shù) ??
cat 文件| uniq 選項
表3 uniq常用選項
選項 | 功能 |
c | 統(tǒng)計連續(xù)重復(fù)的行的次數(shù),并且合并重復(fù)的行 |
u | 顯示僅出現(xiàn)一次的行(包括不連續(xù)的重復(fù)行) |
d | 僅顯示重復(fù)出現(xiàn)的行(必須是連續(xù)的重復(fù)行) |
4.tr
?(1) 概念
常用于對來自標準輸入的字符進行替換、壓縮和刪除
(2)語法格式
tr 選項 參數(shù)
表4 tr常用選項
選項 | 功能 |
c | 保留字符集1的字符,其他的字符(包括換行符\n)用字符集2替換 |
d | 刪除所有屬于字符集1的字符 |
s | 將重復(fù)出現(xiàn)的字符串壓縮為一個字符串,用字符集2 替換 字符集1 |
t | 字符集2 替換 字符集1,不加也行 |
表5 參數(shù)?
參數(shù) | 功能 |
字符集1 | 指定要轉(zhuǎn)換或刪除的原字符集。當(dāng)執(zhí)行轉(zhuǎn)換操作時, 必須使用參數(shù)”字符集2“指定轉(zhuǎn)換操作時,必須使用參數(shù)”字符集2“指定轉(zhuǎn)換的目標字符集。 但執(zhí)行刪除操作時,不需要參數(shù)”字符集2“ |
字符集2 | 指定要轉(zhuǎn)換成的目標字符集 |
5.cut
(1)概念
快速裁剪命令,對字段進行截取和剪裁。
(2)語法格式
格式一:cut [選項] 參數(shù)
格式二:cat file | cut [選項]?
表6 cut常用選項
選項 | 功能 |
d | ?指定分隔符(默認分隔符為Tab) |
f | 按字段進行截取。指定第n個字段 |
b | 以字節(jié)為單位進行截取 |
c | 以字符為單位進行截取 |
-complement | 排除所指定的字段 |
–output-delimiter | 更改輸出內(nèi)容的分隔符 |
6.split
(1)概念
文件拆分,split命令用于在Linux下將大文件拆分為若干小文件。
(2)語法格式
split 選項 參數(shù) 原始文件 拆分后文件名前綴
表7 split常用選項?
選項 | 功能 |
l | 指定行數(shù) |
b | 指定文件大小 |
7.paste
(1)概念
文件合并,按照字段來進行文件的合并,左右合并。
(2)語法格式
paste ? [選項] ? ?文件1 ? ? 文件2
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表8 paste常用選項
選項 | 功能 |
d | 用于指定文件的分隔符(默認情況下為制表符"\n") |
s | 將列和行的內(nèi)容進行互相交換 |
二、實驗
1. grep
(1)多個匹配只取第一個
(2)統(tǒng)計匹配到的行數(shù)
(3)匹配到的行的后3行也顯示出來
? ? ? ? ?匹配到的行的前3行也顯示出來
? ? ? ? 匹配到的行的前后各3行也顯示出來
?
(4)顯示包含root或者包含bash 的行
(5)匹配整個單詞
?(6)匹配兩個文件中內(nèi)容相同的部分
?(7)遞歸過濾目錄中的文件,但不處理軟鏈接
(8)遞歸目錄,但處理軟鏈接
?
(9)將非空行寫入到test.txt文件
過濾以b開頭
過濾以/結(jié)尾
2.sort
(1)按數(shù)字大小進行排序
(2)倒序排列
(3)重復(fù)的數(shù)據(jù)只展示一次,相當(dāng)于去重
?
(4)把整個passwd的文件,傳給test.txt
(5)按照源文件的順序傳
3.uniq
(1)?只顯示出現(xiàn)一次的行
(2)只顯示連續(xù)重復(fù)的行
(3)對重復(fù)的數(shù)據(jù)行計數(shù),并且去重輸出
(4)只展示不重復(fù)的數(shù)據(jù)行
(5)只展示重復(fù)的數(shù)據(jù)行
4.tr
(1)?把"." ,替換成冒號
(2)大寫替換成小寫
?
?(3)保留了ab,替換了c,輸出aa
?(4)刪除ab,打印c
?(5)排序輸出,壓縮空行為一個
?(6)把":"替換為換行
?
5.cut
(1)以":"作為分隔符,指定第一個到第三個字段進行輸出
(2)?指定以":"作為分隔符,但是刪除了第二個字段進行輸出
(3)將分隔符轉(zhuǎn)換為@,進行輸出
6.split
(1)指定文件大小,不需要大小寫
(2)指定每2行拆分為1個文件
7.統(tǒng)計當(dāng)前主機的連接狀態(tài)
(1)獲取所有tcp信息
?(2)取反不顯示第一行
(3)以空格為分隔符,裁剪第1列
(4)排序
(5)去重(統(tǒng)計連續(xù)重復(fù)的行的次數(shù),并且合并重復(fù)的行)
?
8.統(tǒng)計當(dāng)前連接主機數(shù)
(1)獲取tcp信息
?(2)多空格縮為1個空格
?(3)以空格為分隔符,裁剪第4列
?(4)排序
(5)去重(統(tǒng)計連續(xù)重復(fù)的行的次數(shù),并且合并重復(fù)的行)
9.獲取信息
(1)獲取IP地址
?
?(2)獲取郵箱
?(3)去空行
?
(4)?匹配1或2
?(5)擴展正則表達式
①取IP地址
②取電話
③取手機號(11位)
?④其他方法不嚴謹
?⑤取出郵箱
?⑥轉(zhuǎn)義
?文章來源:http://www.zghlxwxcb.cn/news/detail-469318.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-469318.html
到了這里,關(guān)于Shell腳本攻略:文本三劍客之grep的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!