通用正規表示式解析器(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 表示當...