vim刪除#開頭的行和正則表達式筆記


問題:httpd.conf配置文件中存在很多以#號開頭的行,請使用vim相關指令刪除#開頭的行.

 

 

 

更新:最終答案為:

:g/ *#.*/d

以下全部為探索過程!

 

答案:    :1,$s/^#.*//g 或 :1,$s/^#.*//  (不用g也行)

但這樣只會把第一個字符是#的行刪掉,不會把空格開頭,但#為首字符的字段刪掉,所以下面是改進版:

:1,$s/ *#.*//

 

效果:

 但此時仍有很多空行,下面刪去空行:

:g/^\s*$/d

 


簡單解釋一下:

g :全區命令
/ :分隔符
^\s*$ :匹配空行,其中^表示行首,\s表示空字符,包括空格和制表符,*重復0到n個前面的字符,$表示行尾。連起來就是匹配只有空字符的行,也就是空行。
/d :刪除該行

 

 

 最終效果:

 

 

 

筆記:

1,$:對所有行生效.(從第一行到最后一行($)都生效)

s/x/y/:將x替換為y.

^#:開頭為#的.

.*:和后面若干個字符.

g:(global)全局的.例如,s/x/y/只會將一行中第一個x替換為y,但s/x/y/g會將一行中所有的x替換為y.

^:[反向選擇] 或 [定位在行首],在[]內代表反向選擇,在[]外代表定位在行首.

$:定位在行尾.

.(小數點):代表[一定有一個任意字符].

舉例: #grep -n 'g..d' xx.txt

意義:從xx.txt中找出有開頭是g,結尾時d,g和d中間必有兩個字符的行.

*(星號):代表[重復前一個字符,0到無窮多次]

舉例:[xx*] 第一個x必須有,第二個x可有可無,x*是一起的.

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM