Linux命令行以其強(qiáng)大的文本處理能力著稱,其中g(shù)rep和sed命令是最常用的工具之一。它們分別用于搜索和編輯文本文件,在系統(tǒng)管理、日志分析、文本處理等領(lǐng)域都有廣泛的應(yīng)用。本文將深入探討這兩個(gè)命令的使用方法,涵蓋其基本概念、常用參數(shù)和典型用例。
本文將詳細(xì)介紹這三種工具的基本用法和應(yīng)用場(chǎng)景,幫助你掌握它們?cè)趯?shí)際操作中的技巧。
1. 特點(diǎn)及應(yīng)用場(chǎng)景

2. grep 命令
grep(Global Regular Expression Print)是一款功能強(qiáng)大的文本搜索工具。它可以通過指定的模式在文件中查找匹配的行,并將這些行打印到標(biāo)準(zhǔn)輸出。
其基本語(yǔ)法如下:
grep [選項(xiàng)] '模式' 文件名
2.1 grep命令常用參數(shù)及含義
-i
:忽略大小寫(case-insensitive)地搜索。
-v
:反轉(zhuǎn)匹配,顯示不符合模式的行。
-c
:顯示匹配行的數(shù)量,而不是匹配的行內(nèi)容。
-n
:顯示匹配行的行號(hào)。
-r
或 -R
:遞歸地搜索目錄中的文件。-R
也會(huì)跟蹤符號(hào)鏈接。
-w
:只匹配整個(gè)單詞。
2.2.1 匹配查詢的內(nèi)容并顯示其后面的5行

2.2.2 統(tǒng)計(jì)某個(gè)進(jìn)程及出現(xiàn)的行數(shù)

2.2.3 grep 過濾自身進(jìn)程

2.2.4 精確匹配

2.2.5 搜索時(shí)忽略字母的大小寫差異

2.2.6 顯示匹配行的行號(hào)

2.2.7 在當(dāng)前目錄及其子目錄中的所有文件中搜索包含“404”的行

2.2.8 統(tǒng)計(jì)包含特定字符串的行數(shù)

3. sed
sed是Stream Editor的縮寫,是一種非交互式的流編輯器。sed允許對(duì)文本進(jìn)行插入、刪除、替換等操作,而無(wú)需打開文件。這使得它在批處理文本文件時(shí)非常高效。
具體工作機(jī)制要經(jīng)歷如下幾步:
1. 讀取輸入
sed
從文件或標(biāo)準(zhǔn)輸入(stdin)讀取一行文本,并將其放入模式空間(pattern space)中。
2. 匹配與處理
根據(jù)用戶提供的命令,sed
在模式空間中對(duì)這行文本進(jìn)行處理。常見的操作包括:
3. 輸出
除非明確要求刪除,處理后的內(nèi)容會(huì)輸出到標(biāo)準(zhǔn)輸出(stdout),或者被重定向到一個(gè)文件。
4. 循環(huán)處理
sed
會(huì)對(duì)輸入的每一行重復(fù)上述步驟,直到所有行都被處理完。
3.1 查找操作

3.1.1 指定行號(hào)查找

3.1.2 指定行號(hào)范圍查找 【$表示最后一行 】

3.1.3 過濾

3.1.4 通過正則查找 【-r】

3.1.5 范圍過濾

3.1.6 范圍查找【當(dāng)終止范圍不存在,顯示開始范圍到文件末尾】

3.2 刪除操作

3.2.1 指定行號(hào)刪除

3.2.2 刪除空行或者#

3.3 sed 核心應(yīng)用之增加cai

3.3.1 增加內(nèi)容

3.3.2 向文件config中增加多行

3.4 sed 核心應(yīng)用之替換 s

3.4.1 替換每一行數(shù)字為空,加g表示全局替換

3.4.2 替換每一行數(shù)字為空,不加g表示只替換每行第一個(gè)匹配內(nèi)容

4.總結(jié)
grep和sed是Linux命令行中非常強(qiáng)大的工具,它們各自擅長(zhǎng)于搜索和編輯文本文件。通過理解和掌握這兩個(gè)命令的使用方法,可以在日常的系統(tǒng)管理、腳本編寫和數(shù)據(jù)處理工作中大大提高效率。grep的靈活搜索能力和sed的強(qiáng)大編輯能力相結(jié)合,使得它們?cè)谔幚泶笠?guī)模文本數(shù)據(jù)時(shí)表現(xiàn)尤為出色。
在實(shí)際工作中,通過不斷練習(xí)和應(yīng)用這兩個(gè)工具,你將能夠輕松應(yīng)對(duì)各種文本處理任務(wù),成為L(zhǎng)inux命令行的高手。
藍(lán)隊(duì)云官網(wǎng)上擁有完善的技術(shù)支持庫(kù)可供參考,大家可自行查閱,更多技術(shù)問題,也可以直接咨詢。同時(shí),藍(lán)隊(duì)云整理了運(yùn)維必備的工具包免費(fèi)分享給大家使用,需要的朋友可以直接咨詢。更多技術(shù)知識(shí),藍(lán)隊(duì)云期待與你一起探索,助力你在 Linux 運(yùn)維之路上穩(wěn)步前行。