如何使用 vi 刪除檔案中的所有行?

如何使用 vi 刪除檔案中的所有行?

如何使用 vi 刪除檔案中的所有行?

目前,我使用類似的方法來刪除文件中的所有行:

echo > test.txt

如何使用刪除所有行vi

筆記: 使用dd不是一個好的選擇。可以有很多行。

答案1

vi

:1,$d

刪除所有行。

引入:一個命令(並將遊標移到底部)。
指示1,$以下命令 ( d) 應該在哪些行上執行。在本例中,範圍是從第一行到最後一行(以 表示$,因此您不需要知道文件中的行數)。
最後一個d代表刪除指定的行。

有一個更短的形式(:%d),但我發現自己從未使用過它。可以:1,$d更容易地“適應”,例如:4,$-2d僅保留前 3 行和最後 2 行,刪除其餘的。

答案2

在 vi 我使用

:%d

在哪裡

  • :告訴 vi 進入指令模式
  • %表示所有行
  • d: 刪除

在命令列上,

> test.txt

也會做。

dd 有什麼問題嗎?

dd if=/dev/null of=test.txt

在哪裡

  • /dev/null是一個特殊的0位元組文件
  • if是輸入檔
  • of是輸出檔案

答案3

我建議您這樣做(應該可以在任何與 POSIX 相容的 shell 中工作):

> test.txt

如果你真的想用 vi 來做,你可以這樣做:

  • 1G(轉到第一行)
  • dG(刪除到最後一行)

答案4

如果您的遊標位於第一行(如果不是,請鍵入:gg1G),那麼您可以直接使用dG。它將刪除從當前行到文件末尾的所有行。因此,為了確保從文件中刪除所有行,您可以將兩者混合在一起,這將是:(ggdG在命令模式下)。

%d在 Ex 模式下,命令列範例:vim +%d foo.bar.

有關的:如何在 VIM 中刪除從目前行到文件末尾的所有文字?

相關內容