vi正規表示式

2022-07-16 12:12:09 字數 2162 閱讀 5892

搜尋命令:/正規表示式

替換命令::s/正規表示式/替換字串/選項

:%s/str1/str2/g   該命令中:表示進入命令列模式,%表示對該檔案所有行有效,s表示查詢並替換,正規表示式str1表示被替換的內容,字串str2表示替換後的內容,g表示整行有效

正規表示式字元匹配

例項替換

例項刪除

3.刪除所有空行       

:g/^$/d  (刪除沒有任何字元除了乙個回車符的行)  

:g/^[ \t]*$/d      (刪除有空格或是tab符號的所有行)

4.刪除含有某些字元的行     

:g/error/d  (刪除含有error字元的所有行,d是刪除指令) 

5.刪除每行的所有前導空格      

:%s/^ *//g  (後面的//之間沒有任何東西,也就是說不用任何東西去替換前面的前導空格,即刪除前導空格)

6.在檔案中的每一行的開始插入 -> (或者換其他字元)

:%s/^/->/g

7.在每一行的尾部加上乙個句號(或者其他字元)

:%s/$/。/g

8.刪除以數字開頭的行

:%s/^\d.*$//g

9.刪除以abc三個字母一起開頭的行

:%s/^[a|b|c].*$//g或者:%s/^abc.*$//g

10.刪除重複行

:%s/^\(.*\)\n\1$/\1/g      將兩行重複行壓縮成一行(/^匹配到行首,.*匹配任意多個字元,\(.*\)相當於把之前匹配得到的字元儲存下來,\1就表示儲存的內容,\n\1表示換行之後再去匹配之前儲存的字元,到這裡就匹配了兩行,$接著到換行之後的行尾,之後的\1表示用前面儲存的匹配到的第一行字元去替換匹配得到的兩行字元,這就相當於把兩行重複行壓縮成一行)

:%s/^\(.*\)

\(\n\1

)\+$/\1/g       將多行重複行壓縮成一行 (\n\1)\+表示匹配任意多重複行

例項對調

1.交換列表中所有連字元分隔的條目的順序

如將abc:xyz對換成xyz:abc

:%s/\(.*\):\(.*\)/\2:\1/g  \1表示第一次儲存的內容,\2表示第二次儲存的內容

函式式

格式::s/str1/\=函式式

例1:將各行的id字串替換為行號

:%s/\/\=line(".")

\匹配的是單獨的詞id,而不是amid這類嵌在某個單詞裡面的字元。line(".")是返回各行行號的乙個函式。

例2:將每行開頭的單詞替換為(行號-10)

:%s/^\/\=(line(".")-10)

與perl正規表示式的區別

sed用法(用來直接處理檔案)

VI 正規表示式

一 vi中如何使用正規表示式 使用正規表示式的命令最常見的就是 搜尋 命令。其格式如下 正規表示式 另乙個很有用的命令就是 s 替換 命令,將第乙個 之間的正規表示式替換成第二個 之間的字串。s 正規表示式 替換字串 選項 二 元字元 元字元是具有特殊意義的字元。使用元字元可以表達任意字元 行首 行...

vi 中的正規表示式

表 元字元 功能 例子 匹配什麼 錨定行的開始 love 匹配所有以love開頭的行.錨定行的結束 love 匹配所有以love結束的行.匹配乙個字元 l.e 匹配這樣的行,這些行包含這樣的字元,第乙個字元是 l,緊跟著兩個字元,然後是e.代表0個或多個先前字元 love 匹配這樣的行,有0個或者多...

Vi中的正規表示式

毋庸多言,在vim中正規表示式得到了十分廣泛的應用。最常用的 和 s 命令中,正規表示式都是不可或缺的。下面對vim中的正規表示式的一些難點進行說明。vim中有個magic的設定。設定方法為 set magic 設定magic set nomagic 取消magic h magic 檢視幫助 vim...