grep sed 指令基礎使用

2021-09-19 13:01:02 字數 2895 閱讀 7382

1.grep [選項][模式][檔案…]

grep命令由選項、模式和檔案三部分組成,它在乙個或多個檔案中搜尋滿足模式的文字行,模板後的所有字串被看做檔名,檔名可以有多個,搜尋的結果被列印到螢幕,不影響原檔案的內容。grep命令的選項用於對搜尋過程進行補充說明,

//編譯 7.txt 檔案內容 yy結束

cat >>7.txt<< yy

編譯完成 ctrl + c儲存 wq退出

nl 7.txt //nl 用行號顯示文字

grep『******』 -a 2 7.txt

//顯示此文字的後兩行內容

//顯示此行內容

grep -n 『the』 7.txt

//-n :顯示行數 查詢the用行數顯示出來

grep -vn

-vn //-vn: 是顯示不帶 the 用行數顯示

-in //-i: 顯示忽略大小寫 有就顯示

grep -n 『t[ae]st』 7.txt

// 第一位 tast 也行 test也行 行數顯示

grep -n 『0』 7.txt

『[^g]00』

//只要不是g開頭其他都顯示

『[^a-z]xx』 //只要不是小寫字母

grep -n 『^the』 7.txt

//以the開頭內容 the 不能有其他內容

『.$』 //顯示內容最後一位是點的內容

tail -6 7.txt | head -5

//先取後6行內容head取前5行內容顯示

『g…d』 //起頭g 結束d中間4個字元顯示

『[ot]』 『g.*g』 //兩個g前後呼應

grep 『g\w[2]g』 7.txt

//正規表示式中的

?+{} 需要加入\才能起作用 //如果不加就直接起作用

注意:經過測試\d 不能使用想使用數字用[0-9]還有要使用正規表示式的?+{}前邊要加斜槓

下面還有一些有意思的命令列引數:

grep -i pattern files :不區分大小寫地搜尋。預設情況區分大小寫,

grep -l pattern files :只列出匹配的檔名,

grep -l pattern files :列出不匹配的檔名,

grep -w pattern files :只匹配整個單詞,而不是字串的一部分(如匹配』magic』,而不是』magical』),

grep -c number pattern files :匹配的上下文分別顯示[number]行,

grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,

grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。

grep -n pattern files 即可顯示行號資訊

grep -c pattern files 即可查詢總行數

這裡還有些用於搜尋的特殊符號:

< 和 > 分別標註單詞的開始與結尾。

例如:grep man * 會匹配 『batman』、』manic』、』man』等,

grep 『』 只匹配』man』,而不是』batman』或』manic』等其他的字串。

『^』:指匹配的字串在行首,

『$』:指匹配的字串在行 尾,

sed指令

sed 『2,5d』

// 用行號顯示 刪除2-5行內容

nl 7.txt | sed 『2,5d』 //不是真正的刪除

//不刪除原本檔案內容

sed 『2,5d』 7.txt > 8.txt

//刪除7.txt 2-5行內容 到新的8.txt檔案裡

顯示被刪除的樣子

sed 『/^#.*/d』 /etc/inttab | sed 『/^$/d』

//刪除注釋加空白行

nl /etc/passwd | sed '2a 『ttt***』

//在第2行後面加

『2i ttt***』

//在前面加

『2i ttt/iii/aaa』

插入3行內容

sed刪除指令

內容如下

11 aa

22 bb

33 cc

23 dd

55 2e

sed 『1,2d』 test.xx

輸出:33 cc

23 dd

55 2e

其中1,2d中的d表示刪除,而d前面的表示刪除的行的位址,而1,2表示乙個位址範圍,也就是刪除第1行和第2行。位址範圍的表示一般是 m,n 表示對m和n行之間的所有行進行操作,也包含第m行和第n行。sed的位址定址中可以使用表示最

後一行,

例如m,

表示最後一行,例如 m,

表示最後一行

,例如m

, 表示對m行以及其後面的所有行進行操作,包括最後一樣。m,$d就是刪除m行以及其後面的所有行內容。當然我們還可以對某一行進行操作,例如2d表示僅僅刪除第2行。除了使用數字範圍 m,n 表示多行區間,以及m表示單行以外,我們還可以使用正規表示式選出符合條件的行,並對這些行進行操作,同樣的是上面的檔案:

sed 『/2/d』 test.txt

輸出:11 aa

33 cc

上面的命令中 /2/ 是乙個正規表示式,在sed中正規表示式是寫在 /…/ 兩個斜槓中間的,這個正則的意思是尋找所有包含2的行,執行相應的操作,也就是刪除所有包含2的行,如果我們只想刪除以2開頭的行呢,只需要修改一下正規表示式就可以了:

sed 『/^2/d』 test.txt

輸出:11 aa

33 cc

55 2e

Linux中grep,sed的使用

今天,mayuyu來講一些linux中常用的命令。1.grep命令 grep用於過濾自己需要的內容,語法如下 grep mayuyu color 過濾出所有包含mayuyu的行,grep中也是支援正規表示式的。2.sed命令 使用普通的vim編輯器在編輯檔案時有兩個主要的問題 1 當檔案比較大的時候...

Linux基礎正規表示式 grep,sed

先說明語系對正規表示式的影響 lang c 0,1,2,3,4.a,b,c,d.z a b c d z lang zh cn 0,1,2,3,4.a a b b c c d d.z z 因為不同語系用 a z 篩選的不同,所以出現了特殊符號 alnum 即0 9,a z,a z,英文大小寫字元和數字...

linux基礎 使用指令2

1.cat指令 功能 檢視檔案內容,是以唯讀的方式開啟。語法 cat 要檢視的檔案 選項 n 顯示行號 末尾加 more 分頁 使用細節 cat只能瀏覽檔案,而不能修改檔案,為了瀏覽方便,一般會帶上 管道命令 more 例如 cat 檔名 more 2.more指令 more指令中內建了若干快捷鍵,...