• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Vim 符合搜尋條件、整行刪除或保留教學與範例

介紹如何使用 Vim 的正規表示法進行搜尋,並將符合條件的資料整行刪除。

搜尋並刪除符合的行

如果要在 Vim 編輯器中以正規表示法進行搜尋,並將符合條件的行(line)刪除,可以使用 g 指令搜尋,然後搭配結尾的 d 來刪除所有符合的行。

例如搜尋 dog 這個字眼,並將所有含有 dog 字眼的行都刪除:

:g/dog/d

這裡我們可以自由運用各種正規表示法進行匹配,例如要將含有 dog 或 fog 字眼的行都刪除,可以執行:

:g/[df]og/d

若要將含有 dog 或 cat 字眼的行刪除,可以執行:

:g/dog\|cat/d

匹配完整單字

若直接以 dog 這個簡單的字眼進行匹配,也會同時匹配到 doggy 這類包含 dog 的單字,如果只想要搜尋 dog 這個單字,排除 doggy,可以在前後加上單字邊界的條件,這樣就可以只匹配到 dog 這個單字了:

:g/\<dog\>/d

執行這一行指令之後,就只會把含有 dog 這個單字的行刪除,而含有 doggy 的行則不受影響。

刪除空白行

若要刪除檔案中所有的空白行,可以執行:

:g/^$/d

上面這一行指令只會刪除完全空的行,如果一行中含有空白字元或 tab 字元,就會被保留。

如果希望將只有空白字元或 tab 字元的行都一起刪除,可以改用這一行指令:

:g/^\s*$/d

搜尋並只保留符合的行

如果想要把符合搜尋條件的行保留下來,刪除其他所有沒有符合的行,可以在搜尋條件之前加上驚嘆號(!),以反向匹配的方式處理。

例如若要只保留含有 dog 字眼的行,將其他的所有行都刪除,就可以執行:

:g!/dog/d

若要只保留含有 dog 或 cat 字眼的行,將其他的所有行都刪除,就可以執行:

:g!/dog\|cat/d

處理範圍

若只要針對檔案中的特定幾行進行處理,可以在開頭的 g 之前指定行的範圍。

例如只要針對第 1 行到第 15 行,將含有 dog 字眼的行刪除,則可執行:

:1,15 g/dog/d

在指定行範圍時,可以使用錢字號($)來代表檔案中的最後一行。

例如若要針對第 30 行之後到檔案的最後一行,將含有 dog 字眼的行刪除,則可執行:

:30,$ g/dog/d

參考資料

  • G. T. Wang:Vim 搜尋關鍵字、刪除符合條件的列

分類:Linux

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide