vi 刪除行的所有操作

2021-06-26 05:56:12 字數 1921 閱讀 7407

我這裡在編輯乙個很大的檔案,有幾萬行,都是檔名sheetid, 中間有很多空行,我現在要做的事情就有要把這個檔案中的空行都刪除掉,這個本來想在ultraedit裡面完成的,結果弄了好半天都沒有搞定,時間緊急也沒法再去慢慢的try了,乾脆放到aix上面使用vi來做,也是在網上google 結果找到很多這樣的:

12)刪除操作

:%s/r//g 刪除dos方式的回車^m

:%s= *$== 刪除行尾空白

:%s/^(.*)n1/1$/ 刪除重複行

:%s/^.pdf/new.pdf/ 只是刪除第乙個pdf

:%s/// 又是刪除多行注釋(咦?為什麼要說「又」呢?)

:g/^s*$/d 刪除所有空行 :g/^s*$/d 刪除所有空行

:g!/^dd/d 刪除不含字串'dd'的行

:v/^dd/d 同上 (譯釋:v == g!,就是不匹配!)

:g/str1/,/str2/d 刪除所有第乙個含str1到第乙個含str2之間的行

:v/./.,/./-1join 壓縮空行

:g/^$/,/./-j 壓縮空行

ndw 或 ndw 刪除游標處開始及其後的 n-1 個字元。

d0 刪至行首。

d$ 刪至行尾。

ndd 刪除當前行及其後 n-1 行。

x 或 x 刪除乙個字元。

ctrl+u 刪除輸入方式下所輸入的文字。

^r 恢復u的操作

j 把下一行合併到當前行尾

v 選擇一行

^v 按下^v後即可進行矩形的選擇了

aw 選擇單詞

iw 內部單詞(無空格)

as 選擇句子

is 選擇句子(無空格)

ap 選擇段落

ip 選擇段落(無空格)

d 刪除到行尾

x,y 刪除與複製包含高亮區

dl 刪除當前字元(與x命令功能相同)

d0 刪除到某一行的開始位置

d^ 刪除到某一行的第乙個字元位置(不包括空格或tab字元)

dw 刪除到某個單詞的結尾位置

d3w 刪除到第三個單詞的結尾位置

db 刪除到某個單詞的開始位置

dw 刪除到某個以空格作為分隔符的單詞的結尾位置

db 刪除到某個以空格作為分隔符的單詞的開始位置

d7b 刪除到前面7個以空格作為分隔符的單詞的開始位置

d) 刪除到某個語句的結尾位置

d4) 刪除到第四個語句的結尾位置

d( 刪除到某個語句的開始位置

d) 刪除到某個段落的結尾位置

d{ 刪除到某個段落的開始位置

d7{ 刪除到當前段落起始位置之前的第7個段落位置

dd 刪除當前行

d/text 刪除從文字中出現「text」中所指定字樣的位置,

一直向前直到下乙個該字樣所出現的位置(但不包括該字樣)之間的內容

dfc 刪除從文字中出現字元「c」的位置,一直向前直到下乙個該字元所出現的位置(包括該字元)之間的內容

dtc 刪除當前行直到下乙個字元「c」所出現位置之間的內容

d 刪除到某一行的結尾

d$ 刪除到某一行的結尾

5dd 刪除從當前行所開始的5行內容

dl 刪除直到螢幕上最後一行的內容

dh 刪除直到螢幕上第一行的內容

dg 刪除直到工作快取區結尾的內容

d1g 刪除直到工作快取區開始的內容

....

上面這段我要用的是這個地方

:g/^s*$/d 刪除所有空行

使用vi開啟文字檔案,然後進入命令模式輸入 g/^s*$/d

這個時候要等待,它現在已經在處理檔案了,最後儲存即可,第一次用這個功能,不懂!下完命令後都沒有等待,然後還以為自己哪個地方出錯了呢。

感受到很強大的功能

vi 刪除操作

dd 單行刪除 m,nd m行到n行刪除 m,d m行到結尾刪除 g 字元 d 刪除含有字元的所有行 g d 刪除空白行 s n s g 刪除空白行 g n s g 刪除空白行 s n g 刪除多行空白行,保留一行空白行 g d 刪除全文 x 刪除當前字元 dw 刪除當前字 dd 刪除當前行 d 刪...

刪除表中的所有行

刪除表中的所有行,而不記錄單個行刪除操作。truncate table 在功能上與沒有 where 子句的 delete 語句相同 但是,truncate table 速度更快,使用的系統資源和事務日誌資源更少。truncate table table name 與 delete 語句相比,trun...

使用 TRUNCATE TABLE 刪除所有行

若要刪除表中的所有行,則 truncate table 語句是一種快速 無日誌記錄的方法。truncate table 與不含有 where 子句的 delete 語句在功能上相同。但是,truncate table 速度更快,並且使用更少的系統資源和事務日誌資源。與 delete 語句相比,tru...