vim學習日誌(7) 替換 刪除檔案中的字元

2021-09-07 10:02:09 字數 2526 閱讀 8954

vim全域性替換檔案:

語法為 :[addr]s/源字串/目的字串/[option]

全域性替換命令為::%s/源字串/目的字串/g

[addr] 表示檢索範圍,省略時表示當前行。

如:「1,20」 :表示從第1行到20行;

「%」 :表示整個檔案,同「1,$」;

「. ,$」 :從當前行到檔案尾;

s : 表示替換操作

[option] : 表示操作型別

如:g 表示全域性替換; 

c 表示進行確認

p 表示替代結果逐行顯示(ctrl + l恢復螢幕);

省略option時僅對每行第乙個匹配串進行替換;

如果在源字串和目的字串**現特殊字元,需要用」\」轉義

下面是一些例子:

#刪除以#開頭的:

s/^#.*$//g

#如果有些先以空格開頭,並且順便想刪除換行駛符:

s/^[ ]*#.*\n//g

如果想加注釋: s/^/#/g

:n,$s/vivian/sky/g 替換第 n 行開始到最後一行中每一行所有 vivian 為 sky

vim中定位也比較方便,比如想查詢注釋掉的mod_evasinve20,這樣就行了: [ /^#.*mod_evasive20.*$ ]

刪除以//的開頭的注釋行: cat a2.c | grep -v '//' > a3.c

去掉行尾的^m:

%s/\r//g

在命令模式下用:%s/^\/\/.*$//

:g/\/\//d 把整行給刪了.

#將that or this 換成 this or that

:%s/\(that\) or \(this\)/\u\2 or \l\1/

—- #將句尾的child換成children

:%s/child\([ ,.;!:?]\)/children\1/g

—-#將mgi/r/abox換成mgi/r/asquare

:g/mg\([ira]\)box/s//mg//my\1square/g    <=>  :g/mg[ira]box/s/box/square/g

—-#將多個空格換成乙個空格

:%s/  */ /g

—-#使用空格替換句號或者冒號後面的乙個或者多個空格

:%s/\([:.]\)  */\1 /g

—-#刪除所有空行

:g/^$/d

#刪除包含有空格組成的空行

g/^\s*$/d

#刪除所有的空白行和空行

:g/^[  ][  ]*$/d

除以空格或tab開頭到結尾的空行

g/^[ |\t]*$/d

—-#在每行的開始插入兩個空白

:%s/^/>  /

—-#在接下來的6行末尾加入.

:.,5/$/./—-

#將x替換為換行符

:s/x/\r/g

#顛倒檔案的行序

:g/.*/m0o  <=> :g/^/m0o

—-#尋找不是數字的開始行,並將其移到檔案尾部

:g!/^[0-9]/m$ <=> g/^[^0-9]/m$

在行首或末尾新增指定字元

g/pattern/d 是找到pattern, 刪之

v/pattern/d 是找到非pattern,刪之

#將檔案的第12到17行內容複製10次放到當前檔案的尾部

:1,10g/^/12,17t$

~~~~重複次數的作用

#將chapter開始行下面的第二行的內容寫道begin檔案中

:g/^chapter/.+2w>>begin

—-:/^part2/,/^part3/g/^chapter/.+2w>>begin

—-:/^part2/,/^part3/g/^chapter/.+2w>>begin|+t$

刪除包含特定字元的行:

g/pattern/d   

刪除包含特定字元行和接下來兩行:

g/pattern/,.+2d

刪除不包含指定字元的行:

v/pattern/d

g!/pattern/d

現實tab鍵以及空格等:

set list!

刪除指定的行:

:x,.d #從x行刪除到當前行;

:.,xd #從當前行刪除到x行;

:x,.+3d #從x行刪除到當前行後第三行;

:x,.-1d #從x行刪除到當前行前一行。

Shell 批量替換 刪除檔案中的內容

大量檔案修改同一內容 find name xml xargs perl pi e s 修改前內容 修改後內容 g 此方法用完後會出現檔案丟失問題,不懂為何。我一一對應找到丟失檔案,重新貼上複製提示檔案還在此資料夾下,只不過隱身了。乙個文件修改大量相同內容 sed i s 修改前內容 修改後內容 g ...

Linux學習筆記之vim中的替換功能

s from to s即substitude s from to 將當前行中的第乙個from,替換成to。如果當前行含有多個from,則只會替換其中的第乙個。s from to g 將當前行中的所有from都替換成to。s from to gc 將當前行中的所有from都替換成to,但是每一次替換之...

vim的檔案中字串的查詢與替換

vim有著強大的替換和查詢功能,若能進行熟練的運用,可以讓工作效率得到乙個很大程度的提高.替換語法 addr s 源字串 目的字串 option addr 表示檢索範圍,如 1,n 表示從第1行到n行 表示整個檔案,同 1,表示從當前行到檔案尾 addr 省略時表示當前行 s 表示替換操作,其為su...