問題: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*是一起的.