grep列印符合某個特徵的行

2021-10-19 08:12:42 字數 1272 閱讀 6448

通用正規表示式解析器(grep,general regular expression parser),列印符合某個特徵的行。類似的命令還有egrep, fgrep, rgrep,這裡只簡單介紹一下常用的grep,語法:

grep

[option] pattern [files]

一共有三個引數,分別是選項、模式和檔案。option可以出現在命令後的任意位置,畢竟有-標識。

選項選項

含義-c

輸出匹配行數目,而不是輸出匹配的行

-e啟動擴充套件表示式

-h取消每個輸出行字首,即匹配查詢模式的檔名

-i忽略大小寫

-l只列出匹配行的檔名,而不輸出真正的匹配行

-v對匹配模式取反,即搜尋不匹配的行

模式grep預設支援萬用字元。正規表示式就是一些字元是有特殊含義的,和其他語言一樣,如果你要去除特殊含義請使用\一般情況下,指令碼檔案(shell)中的引數以空白字元分隔(空格 製表和換行),如果你想要在引數中加上乙個或者多個空白字元,那麼你需要給引數加上引號。字元

含義^指向一行的開頭

$指向一行的結尾

.單個字元

[ ][0-9]字母集合,[0-9a-z]表示字母與數字集合,在這裡邊的^表示的不是一行開頭而是非,[^0-9]非數字字元

還有一些常用的字元集合被前人歸納成下表

集合含義

[:alpha:]

字母[:digit:]

數字[:ascii:]

ascii字元

[:alnum:]

字母或數字

[:blank:]

空格、製表

[::cntrl:]

assii控制字元

[:graph:]

非控制、非空格

[:lower:]

小寫字母

[:upper:]

小寫字母

[:print:]

可列印[:punct:]

標點符號

[:xdigit:]

十六進製制數字

如果這還不能滿足你的篩選需求,你可以使用-e選項,讓grep啟用擴充套件表示式:

選項含義

?沒有,如果有就只有乙個

*空或多個

+至少乙個

匹配切確的n個

至少n個

[n,m]個

grep命令常常與其他命令結合,該命令是管道的乙個非常好的實踐。

用UtralEdit批量刪除符合條件的行

在分析sumo的路網xml檔案的時候,希望匯入excel之前能夠先簡化一下。譬如像下面這樣的,我們希望去掉外面的edge屬性,只留下裡面的lane節點。utraledit支援正規表示式的替換哦 如果不知道什麼叫做正規表示式的話,通俗一點講就是用符號匹配。還記得電子詞典嗎?可以用乙個問號代替乙個不確定...

當前含有某個字串的某個檔案 grep

grep rn hello,world find maxdepth 1 name f xargs grep nr color auto best test acc 表示當前目錄所有檔案,也可以是某個檔名 r 是遞迴查詢 n 是顯示行號 r 查詢所有檔案包含子目錄 i 忽略大小寫下面是一些有意思的命令...

當前含有某個字串的某個檔案 grep

grep rn hello,world 輸出檔案中不包含match的行 grep v c words val full.csv processed 12 13.json find maxdepth 1 name f xargs grep nr color auto best test acc 表示當...